描述
从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。
输入描述
多组输入,每行输入一个字符。
输出描述
输出该字符是字母(YES)或不是(NO)。
示例1
输入:H
输出:YES
示例2
输入:9
输出:NO
1. 使用ASCII码值判断
字符的本质是ASCII码值。
A~Z:65~90 a~z:97~122
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
// if ((ch >= 97 && ch <= 122) || (ch >= 65 && ch <= 90))
printf("YES\n");
else
printf("NO\n");
getchar(); // 吸收'\n'
}
return 0;
}
2. 使用isalpha函数判断
在stdlib.h头文件中定义了一系列字符分类函数。
函数原型 | 如果参数符合下列条件就返回真 |
---|---|
int isalnum(int c); | 字母或十进制数字 |
int isalpha(int c); | 字母 |
int isblank(int c);(C99) | 空白字符:' '、'\t' |
int iscntrl(int c); | 控制字符 |
int isdigit(int c); | 十进制数字 |
int isgraph(int c); | 图形字符 |
int islower(int c); | 小写字母 |
int isprint(int c); | 可打印字符 |
int ispunct(int c); | 标点符号 |
int isspace(int c); | 空白字符:' '、'\t'、'\n'、'\v'、‘\f’、'r' |
int isupper(int c); | 大写字母 |
int isxdigit(int c); | 十六进制数字 |
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (isalpha(ch))
printf("YES\n");
else
printf("NO\n");
getchar(); // 吸收'\n'
}
return 0;
}