将字符char类型转换为int整型
//将字符char类型转换成int整型的方法如下:
char str_data = '5';
int int_data = (int)(str_data - '0');
cout << int_data << endl;
//同样的道理int转换成字符char是利用相反的方向
int data_int = 9;
char data_str = (char)(data_int + '0');
cout << data_str << endl;
//为什么一个用+,一个用-呢
其实字符的相加相减是ASCII的相加相减,'0'的ascii的值为48,'5'的ascii的值为53
将字符串转换成int
//方法一:
//atoi是c语言库函数
char p[] = "123456";
long a = atoi(p);
cout << a << endl;
方法二:
//使用stringstream
string s="17";
stringstream ss;
ss<<s;
int i;
ss>>i;
cout<<i<<endl; //输出17
//方法三:
//使用boost库中的lexical_cast
string s = "17";
int i = boost::lexical_cast<int>(s);
cout << i << endl; // 17
将int整型转换成字符串
//将int整型转化为字符串型
int number = 123456;
char str[25];
/*itoa函数参数说明
第三个参数表示进制,10代表10进制
*/
itoa(number,str,10);
//还可以用sprintf()函数作为转换,它指的是字符串格式化命令
//第二个参数:格式化字符串
/*
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
*/
int number2 = 987654;
char str2[25];
sprintf(str2,"%d",number2);
cout << str2 << endl;