stringstream操縱string小總結

2021-07-15 20:28:56 字數 1027 閱讀 5157

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個詞條,每個詞條佔據一行。每乙個詞條包括乙個英文單詞和乙個外語單詞,兩個單詞之間用乙個空格隔開。而且在詞典中不會有某個外語單詞出現超過兩次。詞典之...