stringstream的使用

不論是在什麼語言下編程(除C,因爲C是沒有string類型的),int與string數據類型之間的轉換都是經常被使用的基礎內容。Java中會有豐富強大的類庫供程序員們方便使用,而C++就沒有類似的庫函數了。下面只說說我自己對C++中int與string類型轉換的簡單總結,日後在編程中發現更好的方法還會進行補充噠~

int轉string

1.使用頭文件<sstream>

  1. #include<string>  
  2. #include<sstream>  
  3. int main()  
  4. {  
  5.         int m,n;          
  6.         stringstream ss,ss1;  
  7.         string str,str1;  
  8.         ss<<m;  
  9.         ss>>str;  
  10.         ss1<<n;  
  11.         ss1>>str1;  
  12.         cout<<str<<" "<<str1<<endl;  
  13.         return 0;  
  14. }  
注意stringstream 流只能單次使用,即一次只能將一個int變量輸入轉爲string變量輸出,不可以重複使用。

2.C++11中的庫函數to_string

C++11在string中新增添了不少基本數據類型轉化爲string的函數,但是這些方法在一些老的編譯器上並不能兼容。這裏只給出一個官方指南鏈接,官方內容更加權威嘛,給出的例子就是to_string函數的應用,簡單易懂~

http://www.cplusplus.com/reference/string/to_string/

string轉int

1.使用C語言<stdlib.h>

  1. #include<string>  
  2. #include<stdlib.h>  
  3. #include<iostream>  
  4. int main()  
  5. {  
  6.     string str="234";  
  7.     int n=atoi(str.c_str());  
  8.     cout<<n<<endl;  
  9. }  

需要先將string轉爲C語言中的char* 數組指針

2.C++11中的stoi

C++11也是很貼心的給出string轉爲基本數據類型的方法呢~

給出一個再簡單不過的小例子,入門使用:

  1. #include<iostream>  
  2. #include<string>  
  3. int main(){  
  4.     string str="234";  
  5.     int n=stoi(str);  
  6.     cout<<n<<endl;  
  7.     return 0;  
  8. }  

stoi可以轉換爲十進制、八進制、十六進制和二進制數字,還是給出C++ Reference中的鏈接,大家可以看到詳細的例子

http://www.cplusplus.com/reference/string/stoi/

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