注:由于我们经常要用到int和string类型间的转换,且容易搞混,现在我把他们的转换方法整理一下,供大家参考。
Int转换为string
1).to_string()方法:
int b = 4415;
string a = to_string(b)+to_string(5851); //添加#inlcude <string>头文件
2).stringstream方法:
string a;
stringstream ss; //加头文件#include <sstream>
ss<<121;
ss >> a;
3).itoa()方法:
int number = 12345;
char string[25];
_itoa_s(number, string, 10); //第一个参数是整形变量,第二个数是字符串指针,第三个参数是第一个参数的进制表示;vs2013中要用_itoa_s(),用itoa()或_itoa()会报错;
string转换为int
1).atoi()方法:
char *str = "12345.67";
char s1[] = "454144";
string s2="454548";
int i = atoi(str); //参数是字符指针
int j = atoi(s1);
int k = atoi(s2.c_str()); //c_str()返回const char *类型;
2). stringstream方法:
int a;
string s="8145";
stringstream ss; //添加#include <sstream>头文件
ss<<s;
ss>>a;
char *转换为string
方法一:
string str=”123456”;
char *p=(char*)str.c_str();
char *q=(char*)str.data();
方法二:
string s=”123456”;
Int len=s.size()+1;
char *p=new char[len];
char *q=new char[len];
strcpy_s(p,len,s.c_str()); //最后一个用来存放’\0’;
strcpy_s(q,len,s.data());
方法三:
string s=”1323456”;
char p[20];
copy(p,5,0); //5表示复制几个字符,0代表复制的位置;
*(p+5)=’\0’;
char*转换为string
方法一:
char* s="123456";
string str=s;
方法二:
char s[20]=”123456”;
string str=s;
char和int相互转化
标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。char类型的字符在计算机中就是用ASCII码表示的,int和char之间可以相互转化的。
1).char类型‘0’~‘9’转化为int类型0~9
char a=8+'0'; //a='8'
2).int类型0~9转化为char类型‘0’~‘9'
int a='8'-'0'; //a=8
同理可以在int类型0~9和char类型‘a’~'j'之间相互转化,很方便的技巧。