一、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;
}