C++ cstring 查找和替换
c++ cstring find and replace
我有一个 C++ 项目 (Microsoft Visual C++ 2008) 是我的一位同事多年前开发的,我需要更新一些东西。
我有一个包含 json 的 CString,我需要查找并替换带有 **** 的 4 个连续数字的每个组合。
示例字符串
1234567 12 34 78 iioi78ccc8888 aaassd dedeeded
结果字符串
****567 12 34 78 iioi78ccc**** aaassd dededeed ed
您能否推荐一个可以有效执行此操作且与 Microsoft Visual C++ 2008 完全兼容的函数。
谢谢。
P.S。我的方法是使用 RegEX 查找 4 个连续数字的列表并替换它们,但对 Microsoft Visual C++ 2008 的支持是有限的——正如我正在阅读的那样。
手动编写非常简单:
const int DIGIT_COUNT = 4;
int length = strlen(input);
int consecutiveDigits = 0;
for (int i = 0; i < length; ++i)
{
if (isDigit(input[i]))
consecutiveDigits++;
else
consecutiveDigits = 0;
if (consecutiveDigits == DIGIT_COUNT)
for (int j = 0; j < 4; ++j)
input[i - j] = '*';
}
添加一个 isDigit(char)
函数就可以了。
我有一个 C++ 项目 (Microsoft Visual C++ 2008) 是我的一位同事多年前开发的,我需要更新一些东西。
我有一个包含 json 的 CString,我需要查找并替换带有 **** 的 4 个连续数字的每个组合。
示例字符串
1234567 12 34 78 iioi78ccc8888 aaassd dedeeded
结果字符串
****567 12 34 78 iioi78ccc**** aaassd dededeed ed
您能否推荐一个可以有效执行此操作且与 Microsoft Visual C++ 2008 完全兼容的函数。
谢谢。
P.S。我的方法是使用 RegEX 查找 4 个连续数字的列表并替换它们,但对 Microsoft Visual C++ 2008 的支持是有限的——正如我正在阅读的那样。
手动编写非常简单:
const int DIGIT_COUNT = 4;
int length = strlen(input);
int consecutiveDigits = 0;
for (int i = 0; i < length; ++i)
{
if (isDigit(input[i]))
consecutiveDigits++;
else
consecutiveDigits = 0;
if (consecutiveDigits == DIGIT_COUNT)
for (int j = 0; j < 4; ++j)
input[i - j] = '*';
}
添加一个 isDigit(char)
函数就可以了。