如何替换\r\n
中的std::string
?
答案 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)
答案 3 :(得分:3)
首先使用find()查找“\ r \ n”,然后使用replace()将其他东西放在那里。 看看参考文献,它有一些例子:
http://www.cplusplus.com/reference/string/string/find.html
http://www.cplusplus.com/reference/string/string/replace.html