stringstream操縱string的方法總結(jié)
1 split字符串
之前在用C#寫代碼的時候,用過split函數(shù),可以把一個字符串根據(jù)某個分隔符分成若干個字符串數(shù)組。在用C++操縱字符串的時候,我一直使用很笨的遍歷的方法。為此,我問候過很多次C++標準委員會。直到某一天,我做了一個處理絕對路徑的題目。
首先,我要把‘/'作為分隔符,把輸入字符串split一下。下面是我的代碼:
string inputString("/home/fun/./../code/"); stringstream ss(inputString); string tmp; while(getline(ss,tmp,'/')) { if(tmp.empty()) continue; bulabula; }
神奇的是getline函數(shù),此函數(shù)配合stringstream使用,就實現(xiàn)了split函數(shù)的功能。簡直歷害!
2 格式化輸入
當我們有一個字符串需要解析的時候,可以使用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
是不是很好用呢?不過要注意,當我們使用>>來格式化輸入數(shù)值型變量的時候,后面是不需要跟空格的,而使用>>來格式化輸入string或char*的時候,后面一定要跟空格。當然格式化輸入string,我們也可以使用getline(ss,s,' ')。一樣的效果。
有標準庫用的時候,還是要用的,事半功倍!
以上就是小編為大家?guī)淼膕tringstream操縱string的方法總結(jié)全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復制功能
這篇文章主要給大家介紹了關(guān)于C語言不使用strcpy函數(shù)如何實現(xiàn)字符串復制功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02C++從文本文件讀取數(shù)據(jù)到vector中的方法
這篇文章主要給大家介紹了利用C++如何從文本文件讀取數(shù)據(jù)到vector中,文章通過實例給出示例代碼,相信會對大家的理解和學習很有幫助,有需要的朋友們下面來一起看看吧。2016-10-10淺析C語言中printf(),sprintf(),scanf(),sscanf()的用法和區(qū)別
以下是對C語言中printf(),sprintf(),scanf(),sscanf()的用法以及區(qū)別進行了詳細的分析介紹,需要的朋友可以參考下2013-07-07