проверка того, содержит ли строковое слово цифру и не содержит ли оно цифры

#c

#c

Вопрос:

Допустим, у меня есть строковое предложение «Мой идентификатор gogo127 и мой PIN-код 1234»

Я хочу сделать это «Мой идентификатор — gogo127, а мой PIN-код — xxxx».

Я считаю, что мне нужно создать логику, в которой я проверяю, содержит слово цифру или нет, и отделяю его от превращения в gogoxxx. Есть ли способ, которым я могу это сделать? только с помощью #include<string> и iostream

Комментарии:

1. Несколько неясно, всегда ли у вас текст «pin-код есть» прямо перед pin-кодом, который вы хотите вычеркнуть. Например, у вас может быть предложение типа «Мой pin-код 1234, а мой идентификатор gogo127»? Или «Мой идентификатор gogo127, а 1234 — это мой PIN-код»?

Ответ №1:

Если вы уверены, что длина числа всегда будет равна 4, вы можете использовать приведенное ниже.

 std::string str = "My id is gogo127 and my pin number is 1234";
std::fill_n(str.rbegin(), 4, 'x');
  

Ответ №2:

Очень широкий вопрос, на который можно ответить «Да». Это не особенно полезный ответ для всех, кто здесь участвует, поэтому вот лучший.

Начните с конца string и работайте в обратном направлении, заменяя каждый символ на 'X' , пока не найдете пробел.

Обратный итератор из std::string::rbegin здесь будет очень полезен.