c ++ cstring найти и заменить - PullRequest
0 голосов
/ 09 мая 2018

У меня есть проект C ++ (Microsoft Visual C ++ 2008), который был разработан моим коллегой много лет назад, и мне нужно кое-что обновить.

У меня есть CString, содержащая json, и мне нужно найти и заменить каждую комбинацию из 4 последовательных чисел, которая присутствует на ****.

Пример строки

1234567 12 34 78 iioi78ccc8888 aaassd dededeed ed

Результирующая строка

**** 567 12 34 78 iioi78ccc **** aaassd dededeed ed

Можете ли вы предложить функцию, которая может эффективно это делать, которая полностью совместима с Microsoft Visual C ++ 2008.

Спасибо.

P.S. Мой подход заключается в том, чтобы использовать RegEX, чтобы найти список из 4 последовательных цифр и заменить их, но поддержка Microsoft Visual C ++ 2008 ограничена - как я читал.

1 Ответ

0 голосов
/ 09 мая 2018

Это довольно тривиально, чтобы написать вручную:

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), и все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...