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)庫(kù)中atoi函數(shù)。
string s = "12";
int a = atoi(s.c_str());
對(duì)于其他類(lèi)型也都有相應(yīng)的標(biāo)準(zhǔn)庫(kù)函數(shù),比如浮點(diǎn)型atof(),long型atol()等等。
3、采用sstream頭文件中定義的字符串流對(duì)象來(lái)實(shí)現(xiàn)轉(zhuǎn)換。
istringstream is("12"); //構(gòu)造輸入字符串流,流的內(nèi)容初始化為“12”的字符串 int i; is >> i; //從is流中讀入一個(gè)int整數(shù)存入i中
二、int轉(zhuǎn)string的方式
1、采用標(biāo)準(zhǔn)庫(kù)中的to_string函數(shù)。
int i = 12;
cout << std::to_string(i) << endl;
不需要包含任何頭文件,應(yīng)該是在utility中,但無(wú)需包含,直接使用,還定義任何其他內(nèi)置類(lèi)型轉(zhuǎn)為string的重載函數(shù),很方便。
2、采用sstream中定義的字符串流對(duì)象來(lái)實(shí)現(xiàn)。
ostringstream os; //構(gòu)造一個(gè)輸出字符串流,流內(nèi)容為空 int i = 12; os << i; //向輸出字符串流中輸出int整數(shù)i的內(nèi)容 cout << os.str() << endl; //利用字符串流的str函數(shù)獲取流中的內(nèi)容
字符串流對(duì)象的str函數(shù)對(duì)于istringstream和ostringstream都適用,都可以獲取流中的內(nèi)容。
補(bǔ)充知識(shí):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)化操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf)
- C#與C++?dll之間傳遞字符串string?wchar_t*?char*?IntPtr問(wèn)題
- C++中string使用+號(hào)與int拼接方式
- C++ string與int的相互轉(zhuǎn)換(使用C++11)
- C++中string與int的相互轉(zhuǎn)換實(shí)現(xiàn)代碼
- C++中將string類(lèi)型轉(zhuǎn)化為int類(lèi)型
- c++ int轉(zhuǎn)string方法
- c++中string類(lèi)型和int類(lèi)型相互轉(zhuǎn)換的幾種常用方法
相關(guān)文章
C語(yǔ)言變長(zhǎng)數(shù)組 struct中char data[0]的用法詳解
下面小編就為大家?guī)?lái)一篇C語(yǔ)言變長(zhǎng)數(shù)組 struct中char data[0]的用法詳解。小編覺(jué)得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01C語(yǔ)言中volatile關(guān)鍵字的深入講解
在程序設(shè)計(jì)中,尤其是在C語(yǔ)言、C++、C#和Java語(yǔ)言中,使用volatile關(guān)鍵字聲明的變量或?qū)ο笸ǔ>哂信c優(yōu)化、多線程相關(guān)的特殊屬性,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言volatile關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下2021-07-07C語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實(shí)驗(yàn)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)迷宮實(shí)驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Qt信號(hào)與槽知識(shí)點(diǎn)總結(jié)歸納
信號(hào)和槽是一種高級(jí)接口,應(yīng)用于對(duì)象之間的通信,它是QT的核心特性,下面這篇文章主要給大家介紹了關(guān)于Qt信號(hào)與槽知識(shí)點(diǎn)總結(jié)歸納的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12C語(yǔ)言如何利用異或進(jìn)行兩個(gè)值的交換詳解
最近在工作中遇到了兩個(gè)值交換的需求,發(fā)現(xiàn)自己對(duì)異或有些忘記,所以索性寫(xiě)出來(lái),方便以后需要的時(shí)候參考學(xué)習(xí),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言如何利用異或進(jìn)行兩個(gè)值的交換的相關(guān)資料,需要的朋友可以參考下。2017-09-09