C 中int和string的轉換

2021-08-18 20:30:43 字數 1841 閱讀 5701

一、int轉string

1.c++11標準增加了全域性函式std::to_string:

string to_string (int val);

string to_string (long val);

string to_string (long long val);

string to_string (unsigned val);

string to_string (unsigned long val);

string to_string (unsigned long long val);

string to_string (float val);

string to_string (double val);

string to_string (long double val);

example:

[cpp]view plain

copy

// to_string example

#include // std::cout

#include // std::string, std::to_string

intmain ()  

output:

[cpp]view plain

copy

pi is 3.141593  

28 is a perfect number  

2.採用sstream中定義的字串流物件來實現

[cpp]view plain

copy

ostringstream os; 

//構造乙個輸出字串流,流內容為空 

inti = 12;   

os << i; //向輸出字串流中輸出int整數i的內容 

cout << os.str() << endl; //利用字串流的str函式獲取流中的內容 

二、string轉int

1.可以使用std::stoi/stol/stoll等等函式

example:

[cpp]view plain

copy

// stoi example

#include // std::cout

#include // std::string, std::stoi

intmain ()  

output:

[cpp]view plain

copy

2001, a space odyssey: 2001 and [, a space odyssey]  

40c3:  16579  

-10010110001: -1201  

0x7f: 127  

2.採用標準庫中atoi函式,對於其他型別也都有相應的標準庫函式,比如浮點型atof(),long型atol()等等

[cpp]view plain

copy

string s = 

"12"

;   

inta = atoi(s.c_str());  

3.採用sstream標頭檔案中定義的字串流物件來實現轉換

[cpp]view plain

copy

istringstream is(

"12"

); //構造輸入字串流,流的內容初始化為「12」的字串 

inti;   

is >> i; //從is流中讀入乙個int整數存入i中

C 中string和int之間的轉換

最近在專案中遇到string和int之間轉換的問題,由於的c語言不熟悉,在用atoi 和itoa 這兩個函式的時候,總覺得彆扭,不方便,於是探尋c 中的方法。int 轉string int number 100 string str stringstream buffer buffer str st...

C 中int和string的互相轉換

include include 需要引用的標頭檔案 using namespace std int main 缺點 處理大量資料時候速度慢 stringstream不會主動釋放記憶體。includeusing namespace std int main includeusing namespace...

c 中string和int相互轉換

有兩種方法 1.c 中string到int的轉換 1 在c標準庫裡面,使用atoi include include std string text 152 int number std atoi text.c str if errno erange 可能是std errno else if errn...