c语言中,输入一个整数要求将其转化为字符串。什么意思呢??

8.17
# include <stdio.h>
void main ( )
{
int convert(int n);
int num;
printf("请输入数字");scanf("%d",&num);
if (num<0) num=-num;
printf("\n");
convert(num);
}
int convert(int n)
{
int i;
i=n/10;
if(i!=0) convert(i);
putchar(n%10+'0');
}

这是答案上面的,我最后一句putchar(n%10+'0')实在是没有明白这是什么意思??麻烦各位高手帮帮忙了。我真的看不明白阿 。还有当我输入整数num=123的时候,输出也是123.我就纳闷了,这个题目要表达的意思到底是什么呢?输出的字符串和输出的整数长得一模一样阿 没有一点区别 请问这是什么意思呢??这样的程序又有什么意思呢??我实在是弄不明白。顺便求高手指点,怎样将c语言学好。我现在看见c语言就怕,万分感激了!!!

putchar(n%10+'0'),n%10是一个整数。但是一个整数加上一个'0'这样的0字符,那么这个整数就编程一个字符了!比如:1+'0'='1'。就是这样的
答案你看着表面是一样的。但是实质完全不一样了,转换之后输出的已经是字符串了。然而现实出来看上去是一样,实际上他不是整数而是字符串。字符串里面的内容包含了整数、字母等等。
多看一些C语言代码就好。看看别人是怎么写的。如果有些不是很确定的,就一步一步的跟着程序走,实时打印出来看看结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-13
printf(n%10+'0') 这个n%10是取余数
'0'是指字符0,不是数字,每个数字有其对应的ascl码,比如说原来是数字1,取余后是1,+'0'就是在0的ascll码上加了1,而0之后的ascll刚好是顺序下来的,加了1,刚好对应了字符1,最后用putchar输出的是1这个字符而不是数字。。。就是相当于输出的是char型的,而不是int型的
建议看看书后的cscll表,学学字符的加减。。书上应该是都有的
第2个回答  2012-05-12
因为 它已经成功的从123整数 变成了 123字符串 这个得从ASCII来分析的
比如说 就拿123来说吧
123%10 =3 得到的数+'0'就会变成'3'字符型了 就成功的从整数变成字符了 懂了吗
第3个回答  2012-05-12
n%10+'0'的意思就是从ASCII字符表里的'0'开始,往后数n%10个字符,因为ASCII字符表这部分是0123456789,例如n%10是3的话,正好是'0'之后的第3个字符'3'。
相似回答