Как найти строку в строке и заменить ее? - PullRequest
3 голосов
/ 18 ноября 2010

У меня есть std::string A Мне нужно найти в нем строку B с содержимым, подобным bla-bla-bla, и заменить его другой строкой C, например abcdefg, а если B не было найдено, просто введите C в начале A.

Как это сделать?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2010
void replace_or_merge(std::string &a, const std::string &b, const std::string &c)
{
  const std::string::size_type pos_b_in_a = a.find(b);
  if(pos_b_in_a == std::string::npos) {
    a.insert(0, c);
  }
  else {
    a.replace(pos_b_in_a, b.length(), c);
  }
}
2 голосов
/ 18 ноября 2010
A.replace(str.find(B), B.length(), C);

Возможно, вы захотите добавить проверку ошибок; -)

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