欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 中String 替換指定字符串的實(shí)例詳解

 更新時(shí)間:2017年08月28日 09:26:46   投稿:lqh  
這篇文章主要介紹了C++ 中String 替換指定字符串的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

C++ 中String 替換指定字符串的實(shí)例詳解

C++的string提供了replace方法來(lái)實(shí)現(xiàn)字符串的替換,但是對(duì)于將字符串中某個(gè)字符串全部替換這個(gè)功能,string并沒(méi)有實(shí)現(xiàn),我們今天來(lái)做的就是這件事。

首先明白一個(gè)概念,即string替換所有字符串,將"12212"這個(gè)字符串的所有"12"都替換成"21",結(jié)果是什么?

可以是22211,也可以是21221,有時(shí)候應(yīng)用的場(chǎng)景不同,就會(huì)希望得到不同的結(jié)果,所以這兩種答案都做了實(shí)現(xiàn),

代碼如下:

#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,這樣的話(huà),任務(wù)就完成啦。

其實(shí)大家可能對(duì)本博經(jīng)常寫(xiě)一些這樣的小程序不解,但是我總覺(jué)得,一些看起來(lái)微不足道的東西,往往在關(guān)鍵的時(shí)刻,影響你的效率或者業(yè)績(jī),

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C語(yǔ)言實(shí)例講解四大循環(huán)語(yǔ)句的使用

    C語(yǔ)言實(shí)例講解四大循環(huán)語(yǔ)句的使用

    C語(yǔ)言有四大循環(huán)語(yǔ)句,他們之間可以進(jìn)行任意轉(zhuǎn)換。本文將首先對(duì)其語(yǔ)法進(jìn)行講解,然后通過(guò)一個(gè)實(shí)例用四種循環(huán)來(lái)實(shí)現(xiàn)。相信通過(guò)本文的學(xué)習(xí),大家都能夠?qū)語(yǔ)言循環(huán)語(yǔ)句有著熟練的掌握
    2022-05-05
  • c語(yǔ)言排序之歸并排序(遞歸和非遞歸)

    c語(yǔ)言排序之歸并排序(遞歸和非遞歸)

    這篇文章主要介紹了?c語(yǔ)言排序之歸并排序(遞歸和非遞歸),歸并就是把兩個(gè)或多個(gè)序列合并,本文主要介紹二路歸并,下文相關(guān)資料需要的小伙伴可以參考一下
    2022-04-04
  • C語(yǔ)言自增(++)和自減(--)實(shí)例詳解

    C語(yǔ)言自增(++)和自減(--)實(shí)例詳解

    本篇文章主要介紹了C語(yǔ)言的自增和自減的基本知識(shí),并附有代碼示例,以便大家理解,有需要的朋友可以看下
    2016-07-07
  • c++?對(duì)象分配在棧上還是在堆上問(wèn)題分析

    c++?對(duì)象分配在棧上還是在堆上問(wèn)題分析

    這篇文章主要為大家介紹了c++?對(duì)象在棧上還是在堆上問(wèn)題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C++ 類(lèi)this及返回自身對(duì)象的引用方式

    C++ 類(lèi)this及返回自身對(duì)象的引用方式

    這篇文章主要介紹了C++ 類(lèi)this及返回自身對(duì)象的引用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語(yǔ)言實(shí)現(xiàn)數(shù)字炸彈小游戲

    C語(yǔ)言實(shí)現(xiàn)數(shù)字炸彈小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)數(shù)字炸彈小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C語(yǔ)言?程序的編譯系統(tǒng)解析

    C語(yǔ)言?程序的編譯系統(tǒng)解析

    編譯程序的基本功能是把源程序(高級(jí)語(yǔ)言)翻譯成目標(biāo)程序。但是,作為一個(gè)具有實(shí)際應(yīng)用價(jià)值的編譯系統(tǒng),除了基本功能之外,還應(yīng)具備語(yǔ)法檢查、調(diào)試措施、修改手段、覆蓋處理、目標(biāo)程序優(yōu)化、不同語(yǔ)言合用以及人-機(jī)聯(lián)系等重要功能
    2022-02-02
  • C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡(jiǎn)單實(shí)例

    C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡(jiǎn)單實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助大家實(shí)現(xiàn)優(yōu)先隊(duì)列,需要的朋友可以參考下
    2017-08-08
  • C++ POSIX API超詳細(xì)分析

    C++ POSIX API超詳細(xì)分析

    這篇文章主要介紹了C++ POSIXAPI的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-11-11
  • Qt實(shí)現(xiàn)簡(jiǎn)易計(jì)時(shí)器的示例代碼

    Qt實(shí)現(xiàn)簡(jiǎn)易計(jì)時(shí)器的示例代碼

    計(jì)時(shí)器實(shí)現(xiàn)四個(gè)功能:開(kāi)始計(jì)時(shí)、停止計(jì)時(shí)、暫停計(jì)時(shí)以及打點(diǎn)。當(dāng)點(diǎn)擊暫停時(shí),開(kāi)始按鈕和停止按鈕無(wú)法點(diǎn)擊。當(dāng)點(diǎn)擊停止時(shí),開(kāi)始按鈕和暫停按鈕無(wú)法點(diǎn)擊,此時(shí)停止按鈕變?yōu)榍辶?。本文將用Qt實(shí)現(xiàn)這樣的一個(gè)計(jì)時(shí)器,需要的可以參考一下
    2022-06-06

最新評(píng)論