這篇文章主要介紹了C++ 中String替換指定字符串的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)武山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
C++ 中String 替換指定字符串的實(shí)例詳解
C++的string提供了replace方法來實(shí)現(xiàn)字符串的替換,但是對(duì)于將字符串中某個(gè)字符串全部替換這個(gè)功能,string并沒有實(shí)現(xiàn),我們今天來做的就是這件事。
首先明白一個(gè)概念,即string替換所有字符串,將"12212"這個(gè)字符串的所有"12"都替換成"21",結(jié)果是什么?
可以是22211,也可以是21221,有時(shí)候應(yīng)用的場景不同,就會(huì)希望得到不同的結(jié)果,所以這兩種答案都做了實(shí)現(xiàn),
代碼如下:
#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,這樣的話,任務(wù)就完成啦。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C++ 中String替換指定字符串的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!