C语言中printf("%d",a[i]-✀0✀) ✀0✀有什么用?

2025-02-23 10:28:22
推荐回答(2个)
回答1:

你用gets读入一个字符数组之后,a中保存就是你输入的字符的ascii码(你可以看看ascii表),如果想以%d输出,就需要用原本的字符减去'0'或者减去48,就可以得到实际的数字,比如说字符'9',在ascii表里它的值为57,减去'0'或者减去'0'的ascii码48,就可以得到实际的数字9。这种运算也经常被用到用于大写字母的转换,比如说ch是小写字母,那么ch-'a'+'A'就可以得到大写,同样,比如'C'=='A'+2这种也是成立的。
当然,如果你把%d改为%c,就不需要减去'0'了

回答2:

这个'0'是字符 不是数值0 你差一下ascii字符代码
或者 printf("%d",'0') 看看输出几