Заменить разрывы строк в строке STL - PullRequest
8 голосов
/ 27 января 2009

Как я могу заменить \r\n на std::string?

Ответы [ 4 ]

26 голосов
/ 27 января 2009

не изобретайте колесо, Boost String Algorithms - это библиотека только для заголовков, и я вполне уверен, что она работает везде. Если вы считаете, что принятый код ответа лучше, потому что он был предоставлен, и вам не нужно просматривать документы, здесь.

#include <boost/algorithm/string.hpp>
#include <string>
#include <iostream>

int main()
{
 std::string str1 = "\r\nsomksdfkmsdf\r\nslkdmsldkslfdkm\r\n";
 boost::replace_all(str1, "\r\n", "Jane");
 std::cout<<str1;
}
15 голосов
/ 27 января 2009

Используйте это:


    while ( str.find ("\r\n") != string::npos )
    {
        str.erase ( str.find ("\r\n"), 2 );
    }

более эффективная форма:


    string::size_type pos = 0; // Must initialize
    while ( ( pos = str.find ("\r\n",pos) ) != string::npos )
    {
        str.erase ( pos, 2 );
    }
6 голосов
/ 27 января 2009
3 голосов
/ 27 января 2009

Сначала используйте find () для поиска "\ r \ n", затем используйте replace (), чтобы поместить туда что-то еще. Посмотрите на ссылку, у нее есть несколько примеров:

http://www.cplusplus.com/reference/string/string/find.html

http://www.cplusplus.com/reference/string/string/replace.html

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