序言
在c++编程中,我们经常会将各种数字类型转换为字符串类型,如int转字符串,int的十六进制转换为字符串,float转换为字符串,double转换为字符串等;也可能反过来,将字符串转换为各种数字类型,如字符串转int,字符串转各种进制,字符串转浮点数类型,这篇文章就是介绍如何将数字转字符串和字符串转数字。
整型转字符串
方法一
添加头文件使用sprintf函数可以把数字转换成char数组,以下代码是将数字100转换为字符串100。
int figure = 100;
char str[10];
sprintf(str,"%d",figure); //%d是无符号10进制整数的格式输出
cout << "array of char type is : "<<str <<endl;
输出:
array of char type is : 100
以上代码使用转换说明符%d,将int类型转换为char型数组,使用不同的转换说明符,可以实现不同类型数数字类型转换成相应形式的char型数组形式,转换说明符包括%d,%i,%u,%f,%o,%x,%X,%p,%s,%g,%e等,详细请对照下表:
符号 | 数据类型 |
---|---|
%d | 十进制整型数(int) |
%i | 有符号十进制整数(int) |
%u | 无符号整型数(unsigned int) |
%f | 浮点型 |
%o(字母o) | 八进制整型数 |
%X | 十六进制数字 |
%x | 十六进制数字 |
%p | 指针的值、地址符(unsigned int) |
%s | 字符串 |
%g(或%G) | 浮点数不显示无意义的零“0” |
%e(或%E) | 浮点数输出 |
比如将float转换为char数组类型的代码如下
float figure = 10.12;
char str[10];
sprintf(str,"%f",figure); //%f 是浮点数的转换说明符
cout << "array of char type is : "<<str <<endl;
输出:
array of char type is : array of char type is : 10.120000
方法二
std::string to_string(int value); //(C++11起)