1. 程式人生 > >int與string型別轉換

int與string型別轉換

一、int到string型別轉換 int型別到string型別的轉換在程式設計中經常用到,每次都是忘了就查,然後還記不住,今天索性總結一次。 int型別轉string型別的方法目前我總結出了三種,如下所示:

(1)使用itoa #include <iostream> #include <stdlib.h> using namespace std;

int main() {     int a = 10;     char intstr[20];     itoa(a,intstr,10);     string str = string(intstr);     cout<<str<<endl;     return 0; } 這種方法不是很好用,平時我基本也沒用過。 (2)使用stringstream #include<iostream> #include <sstream>

using namespace std;

int main() {     int a = 10;     stringstream ss;     ss<<a;     string str = ss.str();     cout<<str<<endl;     return 0; }這種我用的比較多。 (3)今天新學到的一種方法,比較簡便。 #include <iostream> #include <string>

using namespace std;

int main() {     int a = 10;     string str = to_string(a);     cout<<str<<endl;     return 0; }注意這個函式在VS2013中是可以使用的,但是在codeblocks 16.01中卻編譯不通過,我大略的在網上查了一下,好像是codeblocks用的MingW的bug。具體的看這個連結點選開啟連結

二、string到int的轉換 (1)使用atoi函式 #include <iostream> #include <stdlib.h> using namespace std;

int main() {     string s = "10";     int a = atoi(s.c_str());     cout<<a<<endl;     return 0; }注意這裡不能直接使用string型別,要把string型別轉換為char型陣列。 但是C++11給出了一種新的替換方法,如下所示: #include <iostream> #include <string> using namespace std;

int main() {     string str = "10";     int a = stoi(str);     cout << a << endl;     return 0; }注意這種方法在codeblocks中仍然無法通過編譯。

(2)使用istringstream #include <iostream> #include <sstream>

using namespace std;

int main() {     string s = "10";     istringstream ss(s);     int a;     ss>>a;     cout<<a<<endl;     return 0; } ---------------------  作者:lhanchao  來源:CSDN  原文:https://blog.csdn.net/lhanchao/article/details/52096072  版權宣告:本文為博主原創文章,轉載請附上博文連結!