整型转字符串有两种方式实现,分别是通过拓展函数itoa或者是输入输出函数sprintf来实现。具体细节如下:
itoa (integer to alphanumeric)是把整型数转换成字符串的一个函数。
windows环境下,想要使用这个函数需要引用
的头文件. 文件中对itoa的声明如下:
char* itoa(int value,char*string,int radix);
value就是要转换的整型,char *string
就是转换后的字符串的地址,而radix是用来选择进制的.
itoa函数的用法如下
#include
#include
int main()
{
int number1 = 123456;
int number2 = -123456;
char string[16] = {0};
itoa(number1,string,10);
printf("数字:%d 转换后的字符串为:%s\n",number1,string);
itoa(number2,string,10);
printf("数字:%d 转换后的字符串为:%s\n",number2,string);
return 0;
}
运行的结果为:
可以看出,itoa(number1,string,10);
这一步,itoa将number1的整型转换成了字符串并且存储在string里面,并且这个字符串是十进制的,以后radix为10. 如果将这个10改成2,则运行结果为:
sprintf函数在头文件
里面,函数声明如下:
int sprintf( char *buffer, const char *format [, argument,…] );
其中buffer是用来存储转换后的字符串,format则是转换的格式,后续的参数是任意个的. 具体使用方法如下:
#include
int main()
{
int number1 = 123456;
int number2 = -123456;
char string[16];
sprintf(string, "%d", number1);
printf("string = %s\n", string);
return 0;
}
运行结果:
这里sprintf(string, "%d", number1);
将number1通过%d
的格式转换成字符串,然后存储在string里面. 因此打印出来结果为string = 123456
如果更改sprintf中的format, 改成sprintf(string, "the value of string is %d", number1);
,其他不变,再次运行程序,结果为:
可见,sprintf中的format会将%d中的内容替换成后面的number1,再将整个字符串赋值给string,因此,如果我们只想要得到整型的字符串,只需要将format设置为%d
即可,如果添加了其他的内容,string的内容就不只是number1的字符串形式了.
和整型转字符串类似,也有两种方法:atoi函数和sscanf函数
和itoa函数类似,只是将字符串转换成整型,函数声明在
中,函数的格式如下:
int atoi(const char *nptr);
nptr是需要转换的字符串.
具体使用方法如下:
#include
#include
int main()
{
printf("字符串\"123456\"转换为数字:%d\n",atoi("123456"));
printf("字符串\"-123456\"转换为数字:%d\n",atoi("-123456"));
return 0;
}
具体使用方法如下:
#include
int main()
{
char str[10] = "12345";
int a;
sscanf(str, "%d", &a);
printf("%d\n", a);
return 0;
}
运行结果为:
sscanf将str的内容通过%d
格式的转换,转换成整型后,将整型存储在a的地址中.