当前位置:  开发笔记 > 编程语言 > 正文

替换STL字符串中的换行符

如何解决《替换STL字符串中的换行符》经验,为你挑选了3个好方法。

我怎么能代替\r\nstd::string



1> Hippiehunter..:

不要重新发明轮子,Boost String Algorithms是一个仅限标题的库,我有理由相信它可以在任何地方使用.如果您认为接受的答案代码更好,因为它已经提供,而您不需要查看文档,这里.

#include 
#include 
#include 

int main()
{
 std::string str1 = "\r\nsomksdfkmsdf\r\nslkdmsldkslfdkm\r\n";
 boost::replace_all(str1, "\r\n", "Jane");
 std::cout<


或者只是使用标准库函数来避免增强依赖:http://stackoverflow.com/questions/1488775/c-remove-new-line-from-multiline-string

2> lsalamon..:

用这个 :

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


这是一个擦除而不是替代 - 问的问题是如何替换"\ r \n"; 他们可能需要用另一个角色替换它.

3> Nemanja Trif..:

请参阅Boost String Algorithms库.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有