一、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
版权声明:本文为博主原创文章,转载请附上博文链接!