



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C++如何切割String對(duì)象的方法目錄核心函數(shù)find函數(shù)substr函數(shù)數(shù)值轉(zhuǎn)換輸入樣例輸出樣式C++相較于Java,Python并沒(méi)有提供的字符串分割的函數(shù)split,因此需要自己進(jìn)行編寫(xiě)。在實(shí)際的工作中這一功能會(huì)被經(jīng)常使用,所以進(jìn)行簡(jiǎn)單的記錄一下。
核心函數(shù)
代碼實(shí)現(xiàn)的函數(shù)是調(diào)用String庫(kù)中的find函數(shù)和substr函數(shù)。
find函數(shù)
size_typefind(constbasic_stringstr,size_typepos=0)
find函數(shù)完成最簡(jiǎn)單的搜索,它查找參數(shù)指定的字符串(str),若找到返回一個(gè)String::size_type的值,用來(lái)表示匹配發(fā)生位置的下標(biāo)。若未找到,則返回一個(gè)名為string::npos的static成員。C++標(biāo)準(zhǔn)庫(kù)將npos定義為一個(gè)conststring::size_type類(lèi)型,并初始化值為-1。由于npos是一個(gè)unsigned類(lèi)型,此初值意味著npos等于任何string最大的可能大小。
參數(shù)str,pos表示從pos位置中開(kāi)始查找str
除了find操作,string還支持以下的操作
str.find(args)查找str中args第一次出現(xiàn)的位置str.rfind(args)查找str中args最后一次出現(xiàn)的位置str.find_first_of(args)查找str中args中第一個(gè)字符第一次出現(xiàn)的位置str.find_last_of(args)查找str中args中第一個(gè)字符最后一次出現(xiàn)的位置str.find_first_not_of(args)查找str中args中第一個(gè)不在atgs中的字符str.find_last_not_of(args)查找str中args中最后一個(gè)不在atgs中的字符
substr函數(shù)
stringsubstr(size_typepos=0,size_typecount=npos)
substr主要功能是復(fù)制字符串,要求從指定的位置pos開(kāi)始,并具有指定的長(zhǎng)度count。若未指定長(zhǎng)度或者pos+count源字符串的長(zhǎng)度,則子字符串將延續(xù)到源字符串的結(jié)尾
數(shù)值轉(zhuǎn)換
由于本次樣例中需要將string類(lèi)型轉(zhuǎn)換為int類(lèi)型,我們簡(jiǎn)單介紹以下常見(jiàn)的string的數(shù)值轉(zhuǎn)換
int轉(zhuǎn)換成string
inti=42;
strings=to_string(i);
string轉(zhuǎn)換成int
stringstr='42';
stoi(str);
輸入樣例
nums=[3,2,4],target=6
輸出樣式
324
6
代碼實(shí)現(xiàn)
#includeiostream
#includevector
#includestring
usingnamespacestd;
voidspiltStr(stringstr,conststringsplit,vectorstringstrlist)
strlist.clear();
if(str=="")
return;
stringstrs=str+split;
size_tpos=strs.find(split);
intsteps=split.size();
while(pos!=strs.npos)
{
//substr復(fù)制字符串,起始位置,復(fù)制字符數(shù)目
stringtemp=strs.substr(0,pos);
strlist.push_back(temp);
strs=strs.substr(pos+steps,strs.size());
pos=strs.find(split);
}
intmain()
vectorint
vectorstringstrlist;
stringinputStr;
stringtempStr;
inttarget;
getline(cin,inputStr);
if(inputStr=="")
{
return0;
}
//分割輸入的字符串
spiltStr(inputStr,"[",strlist);
spiltStr(strlist[1],"]",strlist);
spiltStr(strlist[0],",",strlist);
//將vectorstringspiltStr的數(shù)值寫(xiě)入vectorintnums中
for(autoi:strlist)
{
num.push_back(stoi(i));
}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際美術(shù)設(shè)計(jì)師核心知識(shí)試題及答案
- 2024年紡織品檢驗(yàn)員考試大綱解析試題及答案
- 小學(xué)圓形測(cè)試題及答案
- 助理廣告師新聞傳播技巧試題及答案
- 助理廣告師考試名師經(jīng)驗(yàn)分享試題及答案
- 應(yīng)急聯(lián)防面試題及答案
- 2024廣告設(shè)計(jì)師考試商業(yè)模式分析試題及答案
- 深入理解廣告設(shè)計(jì)師考試的試題與答案
- 2024年國(guó)際商業(yè)美術(shù)設(shè)計(jì)師考試學(xué)科分布及試題及答案
- 人工氣道護(hù)理試題及答案
- 中央企業(yè)人工智能應(yīng)用場(chǎng)景案例白皮書(shū)(2024年版)-中央企業(yè)人工智能協(xié)同創(chuàng)新平臺(tái)
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)《奧數(shù)競(jìng)賽試卷》
- 人教版三年級(jí)數(shù)學(xué)下冊(cè)1~8單元練習(xí)
- 《原發(fā)性肝癌診療指南(2024年版)》解讀
- 服務(wù)整改報(bào)告范文
- 中建防水專(zhuān)項(xiàng)施工方案
- 市政給水管道工程監(jiān)理細(xì)則
- 展廳設(shè)計(jì)案例分析
- 第七章-生物醫(yī)學(xué)工程的倫理問(wèn)題
- 2021年下半年軟件評(píng)測(cè)師考試軟件測(cè)試應(yīng)用技術(shù)下午真題
- 卜算子-送鮑浩然之浙東課件
評(píng)論
0/150
提交評(píng)論