C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作
一、string轉(zhuǎn)int的方式
1、采用最原始的string, 然后按照十進(jìn)制的特點(diǎn)進(jìn)行算術(shù)運(yùn)算得到int,但是這種方式太麻煩,這里不介紹了。
2、采用標(biāo)準(zhǔn)庫中atoi函數(shù)。
string s = "12";
int a = atoi(s.c_str());
對于其他類型也都有相應(yīng)的標(biāo)準(zhǔn)庫函數(shù),比如浮點(diǎn)型atof(),long型atol()等等。
3、采用sstream頭文件中定義的字符串流對象來實(shí)現(xiàn)轉(zhuǎn)換。
istringstream is("12"); //構(gòu)造輸入字符串流,流的內(nèi)容初始化為“12”的字符串 int i; is >> i; //從is流中讀入一個int整數(shù)存入i中
二、int轉(zhuǎn)string的方式
1、采用標(biāo)準(zhǔn)庫中的to_string函數(shù)。
int i = 12;
cout << std::to_string(i) << endl;
不需要包含任何頭文件,應(yīng)該是在utility中,但無需包含,直接使用,還定義任何其他內(nèi)置類型轉(zhuǎn)為string的重載函數(shù),很方便。
2、采用sstream中定義的字符串流對象來實(shí)現(xiàn)。
ostringstream os; //構(gòu)造一個輸出字符串流,流內(nèi)容為空 int i = 12; os << i; //向輸出字符串流中輸出int整數(shù)i的內(nèi)容 cout << os.str() << endl; //利用字符串流的str函數(shù)獲取流中的內(nèi)容
字符串流對象的str函數(shù)對于istringstream和ostringstream都適用,都可以獲取流中的內(nèi)容。
補(bǔ)充知識:C++ 將整數(shù)、浮點(diǎn)數(shù)轉(zhuǎn)為字符串
前言:
用 sprintf可以把整數(shù)、浮點(diǎn)數(shù)轉(zhuǎn)為字符串。
1、整數(shù)
int main(int argc, const char * argv[]) { int n = 12345;//待轉(zhuǎn)整數(shù) char strN[50];//轉(zhuǎn)換后的字符串 sprintf(strN, "%d", n); cout<<strN<<endl;//輸出 return 0; }
結(jié)果:
2、浮點(diǎn)數(shù)
int main(int argc, const char * argv[]) { float n = 12345.67;//待轉(zhuǎn)整數(shù) char strN[50];//轉(zhuǎn)換后的字符串 sprintf(strN, "%.2f", n); cout<<strN<<endl; return 0; }
結(jié)果:
以上這篇C++ 字符串string和整數(shù)int的互相轉(zhuǎn)化操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言變長數(shù)組 struct中char data[0]的用法詳解
下面小編就為大家?guī)硪黄狢語言變長數(shù)組 struct中char data[0]的用法詳解。小編覺得挺不錯的現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實(shí)驗(yàn)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實(shí)驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03