#include <stdio.h >
int main(void)
{
int ch;
printf("input a word:");
scanf("%c",&ch);
printf("%c\n",ch-32);
printf("%d",ch-32);
return 0;
}
这个打印对应大写字母的ASCII码,哪里错了?为什么总是一串负数的数字?
把int ch 改为 char ch试试
你这个32是啥意思?为什么要减掉?本身ch里面就是存的ASCII码,因此直接输出ch的数字即是ASCII编码
另外定义变量应该用char,而非int
int一般占四个字节,按照%c输入时只改写其中一个字节的内容,所以输出结果不可控,不知道会是什么值。修改两处错误,即可得正确结果