int string相互转换

一、itoa()和atoi()

注意:这两个函数并不是标准的C函数,而是windows环境下特有的函数。

1、itoa

#include<iostream>
#include<string>
using namespace std;
int main()
{
int num=;
string str;
char s[];
itoa(num,s,);
str=str+s;
cout<<str;
return ;
}

这里要注意:使用itoa是一定要使用char[]过度一下,如果直接使用string的话,可能是由于没有提前申请内存的原因,虽然调试的时候有值,但是实际输出是没值的。

如下面这段代码就没有任何输出。

#include<iostream>
#include<string>
using namespace std;
int main()
{
int num=;
string str;
//char s[30];
string s;
itoa(num,(char *)s.c_str(),);
str=str+s;
cout<<str;
return ;
}

2、atoi

#include<iostream>
#include<string>
using namespace std;
int main()
{
int num;
string str="";
num=atoi(str.c_str());
cout<<num;
return ;
}

二、stringstream

将stringstream看成一个万能类型,可以吞下任何类型的数据,也可以根据目标类型输出任何类型数据。

注意:1、使用是包含头文件sstream

2、多次使用同一个stringstream变量时,中间要使用.clear()方法进行清空

#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
int num_in=;
string str_in="";
string str_out;
string num_out;
stringstream ss;
ss<<num_in;
ss>>str_out; ss.clear(); ss<<str_in;
ss>>num_out;
cout<<str_out<<num_out;
return ;
}
上一篇:CentOS 7 + MySql 中文乱码解决方案


下一篇:iphone splash screen