詳解C++的String類的字符串分割實(shí)現(xiàn)
詳解C++的String類的字符串分割實(shí)現(xiàn)
功能需求,輸入一個(gè)字符串“1-2-3”切割出“1”、“2”、“3”。在Java下直接用String的split函數(shù)就可以了。c++下String沒有直接提供這個(gè)函數(shù),需要自己寫。
網(wǎng)上給出的解決方案是這里的三種方法。但我是通過JNI訪問的,在里面用這些vector可能不中,自己封裝了個(gè),僅供參考:
String recogScop = "01-02-03";
cout<<recogScop<<endl;
int size = recogScop.size();
int pos = 0;
string result[20] ;
for(int i=0, j=0; i<size; i++,j++ )
{
pos = recogScop.find("-", i);
if(pos == -1)
{
String subEnd = recogScop.substr(i, size - i); //最后一個(gè)字符串
result[j] = subEnd;
break;
}
if(pos >0)
{
String sub = recogScop.substr(i, pos-i);
result[j] = sub;
i = pos;
}
}
for(int i=0; result[i] != ""; i++)
cout<<result[i]<<endl;
注意:上面find的結(jié)果pos大于0,表示能夠找到“-”分隔符,如果失敗,也就是最后一個(gè)分隔符,pos會(huì)等于-1.
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C++運(yùn)算符重載 成員函數(shù)與友元函數(shù)詳解
以下是對C++運(yùn)算符重載 成員函數(shù)與友元函數(shù)進(jìn)行了介紹,需要的朋友可以過來參考下2013-07-07
VS2019配置OpenCV時(shí)找不到Microsoft.Cpp.x64.user的解決方法
這篇文章主要介紹了VS2019配置OpenCV時(shí)找不到Microsoft.Cpp.x64.user的解決方法,需要的朋友可以參考下2020-02-02
C++雙線程調(diào)用網(wǎng)絡(luò)攝像頭與多線程調(diào)用多攝像頭同步執(zhí)行方法詳細(xì)講解
這篇文章主要介紹了C++雙線程調(diào)用網(wǎng)絡(luò)攝像頭與多線程調(diào)用多攝像頭同步執(zhí)行方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
C語言項(xiàng)目全正整數(shù)后再計(jì)算的三種參考解答方法
今天小編就為大家分享一篇關(guān)于C語言項(xiàng)目全正整數(shù)后再計(jì)算的三種參考解答方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實(shí)現(xiàn)介紹
大家好,本篇文章主要講的是數(shù)據(jù)結(jié)構(gòu)C語言鏈表的實(shí)現(xiàn)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12

