ruhebumolu
如何不陌路
采纳率66.7%
2015-02-05 17:51 阅读 2.0k
已采纳

C语言整数转字符串输出

#include
#include
void to_str(n)
int n;
{ char s[10];
int i = 0;
if(n { putchar('-');
n = -n;
}
do
{ s[i++] = n%10 +'0';
n/=10;
}
while(n>0);
while(i--)putchar(s[i]);
}
main()
{ int x,y;
scanf("%d",&x);
to_str(x);
}
这里面的{ s[i++] = n%10 +'0';这行不懂,为什么要加'0',不加就不行呢,请赐教。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    wangyaninglm shiter 2015-02-06 01:40

    就是加上字符‘0’的其实位置,其他数字字符相对于他多了多少

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-02-06 01:44

    道理很简单,利用ascii码的连续排列规律,将数字变成ascii码。
    相对于'0','1'的ascii码是'0'+1,其余类推。

    点赞 评论 复制链接分享
  • u010916347 航爷 2015-02-06 07:43

    ‘0’在ascii中的位置就是0x48,0x48~0x57是字符0到9对应的位置,不加‘0’,你只会打印出ascii表中0到9位置对应的字符,而不是0到9的字符

    点赞 评论 复制链接分享

相关推荐