最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中string替換所有指定字符串的方法

 更新時(shí)間:2020年05月14日 09:34:03   作者:IT技術(shù)博客大學(xué)習(xí)  
這篇文章主要介紹了C++中string替換所有指定字符串的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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
# 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 ;
}
returnstr;
}
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 ;
}
returnstr;
}
intmain()
{
cout << replace_all(string(“12212″),“12″,“21″) << endl;
cout << replace_all_distinct(string(“12212″),“12″,“21″) << endl;
}
/*

輸出如下:

22211

21221

*/

OK,這樣的話,任務(wù)就完成啦。

ps:下面看下String.replace() 替換字符串中指定的字符

String.replace()  在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串
語(yǔ)法: stringObject.replace(regexp/substr,replacement)
參數(shù):

regexp/substr

必需。規(guī)定子字符串或要替換的模式的 RegExp 對(duì)象。

請(qǐng)注意,如果該值是一個(gè)字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對(duì)象。

replacement 必需。一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。

說(shuō)明
字符串 stringObject 的 replace() 方法執(zhí)行的是查找并替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來(lái)替換這些子串。如果 regexp 具有全局標(biāo)志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個(gè)匹配子串。

replacement 可以是字符串,也可以是函數(shù)。如果它是字符串,那么每個(gè)匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說(shuō)明從模式匹配得到的字符串將用于替換。

例子:

1. 無(wú)全局標(biāo)志/g,只替換第一個(gè)匹配的返回結(jié)果字符串。返回結(jié)果:hard good study, day day up

var str="good good study, day day up"
var ling="hard"
str=str.replace(/good/,ling)//返回結(jié)果:hard good study, day day up

2. 帶全局標(biāo)志/g,全局替換。返回結(jié)果:hard hard study, day day up

var str="good good study, day day up"
var ling="hard"
 
str=str.replace(/good/g,ling)//返回結(jié)果:good good study, day day up

3. 不一樣的格式:非字符串的參數(shù)。因?yàn)楦袷较拗?,無(wú)法用/g 全局模式。只能替換第一個(gè)匹配的字符串。

var str="good good study, day day up"
var toRe="good";
var ling="hard";
str=str.replace(toRe,ling)//返回結(jié)果:good hard study, day day up

總結(jié)

到此這篇關(guān)于C++中string替換所有指定字符串的文章就介紹到這了,更多相關(guān)c++ string替換字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C實(shí)現(xiàn)與 uint64_t 相同功能的類(lèi)

    C實(shí)現(xiàn)與 uint64_t 相同功能的類(lèi)

    本文給大家分享的是筆者實(shí)現(xiàn)的仿uint64_t的類(lèi),可以用在不支持uint64_t的平臺(tái)上,雖然現(xiàn)在功能還不完善,但是還是分享給大家,也算是給大家一個(gè)思路吧。
    2015-12-12
  • C++中不能被重載的運(yùn)算符介紹

    C++中不能被重載的運(yùn)算符介紹

    其實(shí)在C/C++ 里大多數(shù)運(yùn)算符都可以在C++中被重載的。C 的運(yùn)算符中只有 . 和 ?:(以及 sizeof,技術(shù)上可以看作一個(gè)運(yùn)算符)不可以被重載
    2013-10-10
  • 淺析C++中的重載,隱藏和覆蓋

    淺析C++中的重載,隱藏和覆蓋

    在C++語(yǔ)言中,函數(shù)扮演著很重要的角色,不管面向過(guò)程設(shè)計(jì),還是基于對(duì)象設(shè)計(jì)。本文主要為大家介紹了函數(shù)中重載、覆蓋和隱藏的相關(guān)知識(shí),感興趣的小伙伴可以了解一下
    2022-12-12
  • C++實(shí)現(xiàn)LeetCode(74.搜索一個(gè)二維矩陣)

    C++實(shí)現(xiàn)LeetCode(74.搜索一個(gè)二維矩陣)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(74.搜索一個(gè)二維矩陣),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 一篇文章帶你了解C++中的顯示轉(zhuǎn)換

    一篇文章帶你了解C++中的顯示轉(zhuǎn)換

    這篇文章主要介紹了C++11顯示類(lèi)型轉(zhuǎn)換的優(yōu)點(diǎn),幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下,希望能給你帶來(lái)幫助
    2021-08-08
  • VC使用TerminateProcess結(jié)束進(jìn)程實(shí)例

    VC使用TerminateProcess結(jié)束進(jìn)程實(shí)例

    這篇文章主要介紹了VC使用TerminateProcess結(jié)束進(jìn)程的方法,實(shí)例演示了TerminateProcess結(jié)束進(jìn)程的具體實(shí)現(xiàn)過(guò)程,在進(jìn)行VC應(yīng)用程序開(kāi)發(fā)時(shí)非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件

    c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件

    這篇文章主要介紹了c++如何在主函數(shù)文件中調(diào)用其他函數(shù)文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 桶排序算法的理解及C語(yǔ)言版代碼示例

    桶排序算法的理解及C語(yǔ)言版代碼示例

    桶排序算法顧名思義,就是把要排序的元素分桶排序后合并結(jié)果,這里我們就來(lái)看一下桶排序算法的理解及C語(yǔ)言版代碼示例:
    2016-07-07
  • C語(yǔ)言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 淺析直接插入排序與折半插入排序

    淺析直接插入排序與折半插入排序

    這篇文章主要介紹了直接插入排序與折半插入排序,有需要的朋友可以參考一下
    2013-12-12

最新評(píng)論

子长县| 张掖市| 吉木萨尔县| 冕宁县| 新安县| 伽师县| 苏尼特右旗| 峨眉山市| 彭山县| 四子王旗| 炉霍县| 韩城市| 神池县| 天台县| 开化县| 瑞昌市| 南陵县| 全椒县| 太谷县| 宣化县| 西昌市| 东乡县| 郯城县| 新绛县| 绵竹市| 淳安县| 永昌县| 高青县| 绥江县| 宜黄县| 融水| 衡南县| 衡东县| 三穗县| 凤阳县| 南江县| 乐清市| 阳东县| 马鞍山市| 福贡县| 鸡西市|