替换STL字符串中的换行符

时间:2009-01-27 16:56:20

标签: c++ stl

如何替换\r\n中的std::string

4 个答案:

答案 0 :(得分:25)

不要重新发明轮子,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;
}

答案 1 :(得分:15)

使用此:


    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 );
    }

答案 2 :(得分:6)

请参阅Boost String Algorithms库。

答案 3 :(得分:3)

首先使用find()查找“\ r \ n”,然后使用replace()将其他东西放在那里。 看看参考文献,它有一些例子:

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

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