Как найти и заменить все входы подстроения в строке?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как найти и заменить все входы подстроения в строке?

Сообщение Anonymous »

Мне нужно искать строку и отредактировать ее форматирование.if(chartDataString.find("*A") == string::npos){ return;}
else{chartDataString.replace(chartDataString.find("*A"), 3,"[A]\n");}
< /code>

Если он не найдет строку, ничего не печатается вообще, так что это не хорошо. Я знаю, что есть много похожих постов, но я не понимаю (например, эта заменить подстроение с помощью другого подстроения C ++) < /p>

Я также пытался сделать что -то подобное, чтобы зацикливаться на строке: < /p>

string toSearch = chartDataString;
string toFind = "*A:";
for (int i = 0; i

Редактировать
Принимая во внимание предложения, это теоретически должно работать, но я не знаю, почему это не < /p>

size_t startPos=0;
string myString = "*A";
while(string::npos != (startPos = chartDataString.find(myString, startPos))){
chartDataString.replace(chartDataString.find(myString, startPos), 3, "*A\n");
startPos = startPos + myString.length();
}


Подробнее здесь: https://stackoverflow.com/questions/204 ... n-a-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»