C++ 中String 替換指定字符串的實例詳解
C++ 中String 替換指定字符串的實例詳解
C++的string提供了replace方法來實現(xiàn)字符串的替換,但是對于將字符串中某個字符串全部替換這個功能,string并沒有實現(xiàn),我們今天來做的就是這件事。
首先明白一個概念,即string替換所有字符串,將"12212"這個字符串的所有"12"都替換成"21",結果是什么?
可以是22211,也可以是21221,有時候應用的場景不同,就會希望得到不同的結果,所以這兩種答案都做了實現(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,這樣的話,任務就完成啦。
其實大家可能對本博經(jīng)常寫一些這樣的小程序不解,但是我總覺得,一些看起來微不足道的東西,往往在關鍵的時刻,影響你的效率或者業(yè)績,
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
上一篇:詳解C++ 編寫String 的構造函數(shù)、拷貝構造函數(shù)、析構函數(shù)和賦值函數(shù)
欄 目:C語言
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1226.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言沒有round函數(shù) round c語言
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 01-10深入理解C++中常見的關鍵字含義
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
- 01-10APUE筆記之:進程環(huán)境詳解
- 01-10c++中inline的用法分析
- 01-10如何尋找數(shù)組中的第二大數(shù)


閱讀排行
本欄相關
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什