技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 编程语言 --> string替换所有指定字符串(C++)

string替换所有指定字符串(C++)

浏览:3297次  出处信息

    C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。

    首先明白一个概念,即string替换所有字符串,将”12212″这个字符串的所有”12″都替换成”21″,结果是什么?

    可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下:

#include

    #include

    using namespace std;

    string& replace_all(string& str,const string& old_value,const string& new_value)

    {

     while(true) {

     string::size_type pos(0);

     if( (pos=str.find(old_value))!=string::npos )

     str.replace(pos,old_value.length(),new_value);

     else break;

     }

     return str;

    }

    string& replace_all_distinct(string& str,const string& old_value,const string& new_value)

    {

     for(string::size_type pos(0); pos!=string::npos; pos+=new_value.length()) {

     if( (pos=str.find(old_value,pos))!=string::npos )

     str.replace(pos,old_value.length(),new_value);

     else break;

     }

     return str;

    }

    int main()

    {

     cout << replace_all(string(“12212″),“12″,“21″) << endl;

     cout << replace_all_distinct(string(“12212″),“12″,“21″) << endl;

    }

    /*

    输出如下:

    22211

    21221

    */

    OK,这样的话,任务就完成啦。

    其实大家可能对本博经常写一些这样的小程序不解,但是我总觉得,一些看起来微不足道的东西,往往在关键的时刻,影响你的效率或者业绩,呵呵,不管怎么说,希望对大家有用啦。

建议继续学习:

  1. VIM查找替换归纳总结    (阅读:4465)
  2. vim替换^M字符    (阅读:3792)
  3. 使用tcpdump搞定一个替换问题    (阅读:2525)
  4. 使用Vim(gvim)实现复杂的查找替换的一个例子    (阅读:2488)
  5. CSS图片替换    (阅读:1906)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
  • 作者:Dante    来源: Vimer
  • 标签: 替换
  • 发布时间:2009-11-19 14:53:01
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1