法一:
#include<stdio.h>
int main()
{
int num;
char str[11];
int i = 0;
printf("Please enter anumber!\n");
scanf("%d", &num);
while (num)
{
str[i++] = num % 10 + '0';
num = num / 10;
}
str[i] = '\0'; //str[i] = 0;
while (i--)
{
printf("%c\t",str[i]);
}
putchar('\n');
return 0;
}
运行结果:
解析:num = num/10 表示把一个整型数每次从低位减少一位。
把一个整型数变成相应的字符串 4 + ‘0’=‘4’ 最后给所有字符串加上’\0’
字符串’\0’就表示0,所以str[i] = ‘\0’就等价于str[i] = 0
Str[11]把数组元素的个数初始化时赋值为11,是因为一个整型数在32位操作系统当中为4个字节,32位,2^32次方,11位能存下
\t表示一次往后条8个空格,水平制表 %c表示字符型
下面这是将一个整形数据转化为对应的字符串如1234 -> "1234"的第二种方法。它利用了库函数sprintf,它的功能是将输出输出到一片内存中,printf是输出到屏幕上
#include <stdio.h>
int main()
{
int num;
char a[11];
printf("enter a integer\n");
scanf("%d", &num);
sprintf( a , "%d\0", num);
printf("a : %s\n", a);
return 0;
}