1 split字串
之前在用c#寫**的時候,用過split函式,可以把乙個字串根據某個分隔符分成若干個字串陣列。在用c++操縱字串的時候,我一直使用很笨的遍歷的方法。為此,我問候過很多次c++標準委員會。直到某一天,我做了乙個處理絕對路徑的題目。
首先,我要把『/』作為分隔符,把輸入字串split一下。下面是我的**:
string inputstring("/home/fun/./../code/");
stringstream ss(inputstring);
string
tmp;
while(getline(ss,tmp,'/'
))
神奇的是getline函式,此函式配合stringstream使用,就實現了split函式的功能。簡直歷害!
2 格式化輸入
當我們有乙個字串需要解析的時候,可以使用stringstream。
string inputstring("123abc 123.4one two three four");
stringstream ss(inputstring);
string
s;
inti;
double
d; ss >> i >> s >>d;
cout
<< i << "
"<< s.c_str() << "
"
>s) cout
<<"
"
<< endl;
輸出:123 abc 123.4 one two three four
是不是很好用呢?不過要注意,當我們使用》來格式化輸入數值型變數的時候,後面是不需要跟空格的,而使用》來格式化輸入string或char*的時候,後面一定要跟空格。當然格式化輸入string,我們也可以使用getline(ss,s,' ')。一樣的效果。
有標準庫用的時候,還是要用的,事半功倍!
stringstream常見用法
sstream定義了三個類 istringstream ostringstream 和 stringstream,分別用來進行流的輸入 輸出和輸入輸出操作。為什麼要用stringstream?因為用sprintf 函式將乙個變數從int型別轉換到字串型別。為了正確地完成這個任務,你必須確保證目標緩衝...
stringstream 型別轉換
stringstream可以吞下不同的型別,然後吐出不同的型別。這樣可以實現int,string,double等型別的轉換 1 include2 3using namespace std 45 intmain 612 缺點 效率低,執行時間長 由於cin,cout為了相容c有個同步流。關閉同步流的方...
詞典 stringstream 應用
描述 你旅遊到了乙個國外的城市。那裡的人們說的外國語言你不能理解。不過幸運的是,你有一本詞典可以幫助你。輸入首先輸入乙個詞典,詞典中包含不超過100000個詞條,每個詞條佔據一行。每乙個詞條包括乙個英文單詞和乙個外語單詞,兩個單詞之間用乙個空格隔開。而且在詞典中不會有某個外語單詞出現超過兩次。詞典之...