2011-04-24 131 views
0

例如;將char和int組合成一個字符串

int i = 1; 
char c = 'V'; 
string s; 

結果:

s = "1 V" 

任何人能告訴我該怎麼做? 謝謝

+0

僅供參考,它被稱爲詞彙轉換,其次是串聯。 – 2011-04-24 11:55:37

回答

8

使用std::stringstream<sstream>頭文件,如:

#include <sstream> 

int i = 1; 
char c = 'V'; 

std::stringstream ss; 
ss << i << " " << c; 
std::string s = ss.str(); 
std::cout << s; 

輸出:

1 V 

我使用它你可以在一行中做到這一點實現stringbuilder

std::string s = stringbuilder() << i << " " << c; 

這裏是stringbuilder實現:

struct stringbuilder 
{ 
    std::stringstream ss; 
    template<typename T> 
    stringbuilder & operator << (const T &data) 
    { 
     ss << data; 
     return *this; 
    } 
    operator std::string() { return ss.str(); } 
}; 
+0

感謝Nawaz,如果我使用streamstring,那麼當我想再次使用它時,如何在下一次清除它?我試過ss.flush()和ss.clear(),但他們沒有工作 – Xitrum 2011-04-24 12:04:34

+1

@ user552279:'ss.str(「」);' – ildjarn 2011-04-24 12:11:05

+0

@ user552279:'ss.str(「」)''''空,正如@ildjarn所建議的那樣。 – Nawaz 2011-04-24 12:16:33

1
stringstream str; 

str<<< i << c; 

string s=str.str(); 
相關問題