Вы можете использовать std::string::replace()
, чтобы изменить определенное количество символов на несколько экземпляров одного и того же символа:
size_t idx = textWords[i].find(bannedWords[j]);
if(string::npos != idx)
{
textWords[i].replace(idx,
bannedWords[j].length(),
bannedWords[j].length(),
'*');
}
Обратите внимание, что условие завершения внешнего цикла for
выглядит подозрительно:
for(int i = 0; i <= numWords; i++)
, если в textWords
есть ровно numWords
, это будет доступ к одному за пределами vector
. Подумайте об использовании итераторов или получите количество элементов в индексируемом контейнере из самого контейнера:
for (int i = 0; i < textWords.size(); i++)
{
for (int j = 0; j < bannedWords.size(); j++)
{
}
}
вместо дублирования информации о размере в других переменных.