刚学C语言时,是不是总在“字符判断”上踩坑?比如分不清字符的ASCII范围、输入格式写错……这道“判断字母”题是入门必练的基础题,今天把它拆成“原理+代码+避坑”三步,看完就能举一反三!

计算机里的字符(比如'A'、'b'、'9')其实是用ASCII码表示的数字:
'A'-'Z'对应的ASCII码是 65-90;'a'-'z'对应的ASCII码是 97-122;所以“判断是否为字母”的本质,就是判断字符的ASCII码是否在这两个区间内。
直接看题里的代码,核心就是一个if判断,但要注意两个细节:
#include <stdio.h>
int main() {
char word; // 定义字符变量
scanf("%c", &word); // 输入一个字符(注意&不能丢!)
// 核心判断:是否在大写或小写字母的ASCII范围内
if ((word >= 'a' && word <= 'z') || (word >= 'A' && word <= 'Z')) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}scanf里漏写&
如果写成scanf("%c", word);(没有&),程序会直接崩溃——因为char是变量,scanf需要“变量的地址”才能存输入的值。
比如写成word >= 97(代替word >= 'a'),虽然结果对,但可读性差——直接写'a'更直观,别人一看就知道是“小写字母a”。

这种“判断字符是否在某范围”的逻辑,还能用来做:
word >= '0' && word <= '9';word >= 'A' && word <= 'Z';这道题代码很简单,但能帮你养成“注意变量地址、写可读性高的代码”的习惯——这些细节比“写复杂代码”更重要。
你刚学C语言时,还踩过哪些字符相关的坑?评论区说说,我帮你拆解~