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) 函数就可以了。