Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > проблемы с поиском и заменой в строке


Автор: _par 20.3.2007, 17:17
Есть строка string str = "asd1asd1";

мне надо заменить 1 на 22 в строке.

пробовал сделать так
Код

   string str="asd1asd1";
   int sf = str.find("1");
  
   while(str.find("1"))
   {
       str.replace(sf,1,"22");
       sf = str.find("1"); 
  }
   

надо чтобы работала по шагам нашёл заменил.
Почему если не находит, то возвращает какоето непонятное число ? 

Автор: _hunter 20.3.2007, 17:36
это сделано чтобы можно было понять когда строка не найдена.
добавь эту проверку. примерно так:

int sf = str.find("1");
while(sf > 0)
{
str.replace(sf,1,"22");
sf = str.find("1");
}

Автор: SerjogaVS 21.3.2007, 11:44
Уже открыл новую тему с моей проблемой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)