题目:
输入一个数字,将其转换为字符并输出。
例如:输入一个数字123,将其转换为字符123并输出。
解题思路:
解决这个问题,关键在于对这个数各个位的拆分转换,并且将最后的串进行反转输出。这里采用取余和除操作,将这个数的各个位拆出来,通过ASCII进行转换。由于拆分存储得到的字符顺序是反的,所以我利用首尾元素的移动交换进行字符顺序的反转。
程序代码:
#include <stdio.h>
char * change_fun(int, char *);
int main(int argc, char *argv[])
{
int num;
printf("输入你想转换的数:");
scanf("%d",&num);
char ch[20];//存储转换后的字符
char *ret = change_fun(num,ch);
printf("转换后:%s\n",ret);
return 0;
}
char * change_fun(int num,char *s)
{
int i = 0;
char t;
while(num != 0){//拆分数的各个位,并且转换为字符进行存储
s[i] = num % 10 + 48;
i++;
num = num / 10;
}
s[i] = '\0';
i--;
int j = 0;
while(j < i){//转换后存储顺序是反的,所以进行反转
t = s[i];
s[i] = s[j];
s[j] = t;
i--;
j++;
}
return s;
}
运行结果:
输入你想转换的数:567
转换后:567