string替換所有指定字串(C++)__C++

來源:互聯網
上載者:User

C++的string提供了replace方法來實現字串的替換,但是對於將字串中某個字串全部替換這個功能,string並沒有實現,我們今天來做的就是這件事。
首先明白一個概念,即string替換所有字串,將"12212"這個字串的所有"12"都替換成"21",結果是什麼。
可以是22211,也可以是21221,有時候應用的情境不同,就會希望得到不同的結果,所以這兩種答案都做了實現,代碼如下: [cpp]  view plain copy #include   <string>      #include   <iostream>      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,這樣的話,任務就完成啦。
其實大家可能對本博經常寫一些這樣的小程式不解,但是我總覺得,一些看起來微不足道的東西,往往在關鍵的時刻,影響你的效率或者業績,呵呵,不管怎麼說,希望對大家有用啦。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.