这个头文件提供 字符类型检测 的相关功能,例如判断一个字符是否是字母、数字或标点符号等,并可以对字母进行大小写转换。
| 函数 | 标准 | 说明 | | :- | :- | :- | isalnum | C89 | 判断字符是否是字母或数字 | isalpha | C89 | 判断字符是否是字母 | islower | C89 | 判断字符是否是小写字母 | isupper | C89 | 判断字符是否是大写字母 | isdigit | C89 | 判断字符是否是数字 | isxdigit | C89 | 判断字符是否是十六进制数字 | iscntrl | C89 | 判断字符是否是控制字符 | isgraph | C89 | 判断字符是否是图形字符,包含数字、字母、标点符号 | isspace | C89 | 判断字符是否是空白(white-space)字符,包含空格、水平制表符、竖直制表符、回车符、换行符、换页符 | isblank | C99 | 判断字符是否是空白(blank)字符,空格、水平制表符 | isprint | C89 | 判断字符是否是可打印字符,包含数字、字母、标点符号、空白 | ispunct | C89 | 判断字符是否是标点符号 | tolower | C89 | 将字符转换为小写字母 | toupper | C89 | 将字符转换为大写字母
#include <stdio.h>
#include <ctype.h> // 包含字符处理函数
int main(void) {
char ch;
printf("请输入一个字符: ");
scanf("%c", &ch);
// 检查字符类型
printf("\n字符 '%c' 的类型判断:\n", ch);
printf("isalnum(): %s\n", isalnum(ch) ? "是" : "否"); // 字母或数字
printf("isalpha(): %s\n", isalpha(ch) ? "是" : "否"); // 字母
printf("isdigit(): %s\n", isdigit(ch) ? "是" : "否"); // 数字
printf("islower(): %s\n", islower(ch) ? "是" : "否"); // 小写字母
printf("isupper(): %s\n", isupper(ch) ? "是" : "否"); // 大写字母
printf("isspace(): %s\n", isspace(ch) ? "是" : "否"); // 空白字符
printf("ispunct(): %s\n", ispunct(ch) ? "是" : "否"); // 标点符号
printf("isprint(): %s\n", isprint(ch) ? "是" : "否"); // 可打印字符
printf("isgraph(): %s\n", isgraph(ch) ? "是" : "否"); // 可显示字符(非空格)
printf("iscntrl(): %s\n", iscntrl(ch) ? "是" : "否"); // 控制字符
// 字符转换
printf("\n字符 '%c' 的转换结果:\n", ch);
printf("tolower(): %c\n", tolower(ch)); // 转换为小写
printf("toupper(): %c\n", toupper(ch)); // 转换为大写
return 0;
}
运行结果:
请输入一个字符: 8
字符 '8' 的类型判断:
isalnum(): 是
isalpha(): 否
isdigit(): 是
islower(): 否
isupper(): 否
isspace(): 否
ispunct(): 否
isprint(): 是
isgraph(): 是
iscntrl(): 否
字符 '8' 的转换结果:
tolower(): 8
toupper(): 8
请输入一个字符: c
字符 'c' 的类型判断:
isalnum(): 是
isalpha(): 是
isdigit(): 否
islower(): 是
isupper(): 否
isspace(): 否
ispunct(): 否
isprint(): 是
isgraph(): 是
iscntrl(): 否
字符 'c' 的转换结果:
tolower(): c
toupper(): C
请输入一个字符: %
字符 '%' 的类型判断:
isalnum(): 否
isalpha(): 否
isdigit(): 否
islower(): 否
isupper(): 否
isspace(): 否
ispunct(): 是
isprint(): 是
isgraph(): 是
iscntrl(): 否
字符 '%' 的转换结果:
tolower(): %
toupper(): %