C++中string與int的相互轉換

一、string轉int

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

string s = "66"; 
int a = atoi(s.c_str());

2.採用sstream頭文件中定義的字符串流對象來實現轉換

istringstream is("65"); //構造輸入字符串流,流的內容初始化爲“65”的字符串 
int i; 
is >> i; //從is流中讀入一個int整數存入i中

 

二、int 轉 string

1. c++標準增加了全局函數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:

// to_string example
#include <iostream>   // std::cout
#include <string>     // std::string, std::to_string

int main ()
{
  std::string pi = "xiaoshu is " + std::to_string(5.525588);
  std::string perfect = std::to_string(5+6+7) + " is a zhengshu";
  std::cout << pi << '\n';
  std::cout << perfect << '\n';
  return 0;
}

Output:

xiaoshu is 5.525588
18 is a zhengshu

2.採用sstream中定義的字符串流對象來實現

ostringstream os; //構造一個輸出字符串流,流內容爲空 
int i = 80; 
os << i; //向輸出字符串流中輸出int整數i的內容 
cout << os.str() << endl; //利用字符串流的str函數獲取流中的內容 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章