stringstream操縱string的方法總結(jié)
1 split字符串
之前在用C#寫代碼的時(shí)候,用過(guò)split函數(shù),可以把一個(gè)字符串根據(jù)某個(gè)分隔符分成若干個(gè)字符串?dāng)?shù)組。在用C++操縱字符串的時(shí)候,我一直使用很笨的遍歷的方法。為此,我問(wèn)候過(guò)很多次C++標(biāo)準(zhǔn)委員會(huì)。直到某一天,我做了一個(gè)處理絕對(duì)路徑的題目。
首先,我要把‘/'作為分隔符,把輸入字符串split一下。下面是我的代碼:
string inputString("/home/fun/./../code/");
stringstream ss(inputString);
string tmp;
while(getline(ss,tmp,'/'))
{
if(tmp.empty()) continue;
bulabula;
}
神奇的是getline函數(shù),此函數(shù)配合stringstream使用,就實(shí)現(xiàn)了split函數(shù)的功能。簡(jiǎn)直歷害!
2 格式化輸入
當(dāng)我們有一個(gè)字符串需要解析的時(shí)候,可以使用stringstream。
string inputString("123abc 123.4one two three four");
stringstream ss(inputString);
string s;
int i;
double d;
ss >> i >> s >> d;
cout << i << " " << s.c_str() << " " << d ;
while (ss >> s)
cout <<" "<<s.c_str();
cout << endl;
輸出:
123 abc 123.4 one two three four
是不是很好用呢?不過(guò)要注意,當(dāng)我們使用>>來(lái)格式化輸入數(shù)值型變量的時(shí)候,后面是不需要跟空格的,而使用>>來(lái)格式化輸入string或char*的時(shí)候,后面一定要跟空格。當(dāng)然格式化輸入string,我們也可以使用getline(ss,s,' ')。一樣的效果。
有標(biāo)準(zhǔn)庫(kù)用的時(shí)候,還是要用的,事半功倍!
以上就是小編為大家?guī)?lái)的stringstream操縱string的方法總結(jié)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
用C++實(shí)現(xiàn)一個(gè)命令行進(jìn)度條的示例代碼
這篇文章主要介紹了用C++實(shí)現(xiàn)一個(gè)命令行進(jìn)度條的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
C語(yǔ)言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能
這篇文章主要給大家介紹了關(guān)于C語(yǔ)言不使用strcpy函數(shù)如何實(shí)現(xiàn)字符串復(fù)制功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
基于C++實(shí)現(xiàn)簡(jiǎn)單日期計(jì)算器
這篇文章主要介紹了基于C++實(shí)現(xiàn)簡(jiǎn)單日期計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
C++從文本文件讀取數(shù)據(jù)到vector中的方法
這篇文章主要給大家介紹了利用C++如何從文本文件讀取數(shù)據(jù)到vector中,文章通過(guò)實(shí)例給出示例代碼,相信會(huì)對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來(lái)一起看看吧。2016-10-10
淺析C語(yǔ)言中printf(),sprintf(),scanf(),sscanf()的用法和區(qū)別
以下是對(duì)C語(yǔ)言中printf(),sprintf(),scanf(),sscanf()的用法以及區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07
C語(yǔ)言實(shí)現(xiàn)小小圣誕樹(shù)源代碼
圣誕節(jié)當(dāng)然要有個(gè)圣誕樹(shù)了,今天給你們用C語(yǔ)言編寫一個(gè)雪夜圣誕樹(shù),這篇文章主要給大家介紹了關(guān)于C語(yǔ)言實(shí)現(xiàn)小小圣誕樹(shù)的相關(guān)資料,需要的朋友可以參考下2023-12-12
C語(yǔ)言實(shí)現(xiàn)排序算法之歸并排序詳解
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)排序算法之歸并排序,對(duì)歸并排序的原理及實(shí)現(xiàn)過(guò)程做了非常詳細(xì)的解讀,需要的朋友可以參考下2014-07-07
怎么通過(guò)C語(yǔ)言自動(dòng)生成MAC地址
以下是對(duì)使用C語(yǔ)言自動(dòng)生成MAC地址的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09

