为什么输入1,后输出的是Q
#include <stdio.h>
int main()
{
char a;
printf("请输入一个字符:");
scanf("%c", &a);
if (a >= 41 && a <= 90)
{
a += 32;
}
else if ( a >= 97 && a <= 122)
{
a -= 32;
}
printf("将大小写字母转换:%d%c\n", a, a);
return 0;
}
~ ASCII 字符 '1' 是 49,49+32 = 81 对应字符 'Q' 本帖最后由 傻眼貓咪 于 2021-10-17 21:08 编辑
a 到 z 对应号码:97 到 122
A 到 Z 对应号码:65 到 90
请问你的 41 从哪里来? 本帖最后由 jackz007 于 2021-10-17 21:17 编辑
如果对字符编码没有十足的把握,那么,这一句
if (a >= 41 && a <= 90)
. . . . . .
else if (a >= 97 && a <= 122)
改为:
if (a >= 'A' && a <= 'Z')
. . . . . .
else if (a >= 'a' && a <= 'z') jackz007 发表于 2021-10-17 21:15
如果对字符编码没有十足的把握,那么,这一句
改为:
原因?这我看答案也知道 如果孤独感 发表于 2021-10-17 21:30
原因?这我看答案也知道
原因?因为这样它直观,永远都不会出错! jackz007 发表于 2021-10-17 21:32
原因?因为这样它直观,永远都不会出错!
所以说原因?你在说什么?编程不用这样的方法不用知道原因?别人告诉你这样就这样照着抄? jackz007 发表于 2021-10-17 21:32
原因?因为这样它直观,永远都不会出错!
好吧上面已经有大佬解释了 傻眼貓咪 发表于 2021-10-17 21:07
a 到 z 对应号码:97 到 122
A 到 Z 对应号码:65 到 90
额…………看错了? 傻眼貓咪 发表于 2021-10-17 21:07
a 到 z 对应号码:97 到 122
A 到 Z 对应号码:65 到 90
你这两个回复合起来才是最佳答案啊…………有点小尴尬 如果孤独感 发表于 2021-10-17 21:42
你这两个回复合起来才是最佳答案啊…………有点小尴尬
没有关系,共同学习{:5_91:}
页:
[1]