注:以下讲解的函数都包含在头文件<ctype.h>中
目录
字符分类函数
函数 | 功能(若“是”,则返回“真”,否则返回“假”) |
isalnum | 检查一个字符是否是字母或数字 |
isalpha | 检查一个字符是否是字母 |
islower | 检查一个字符是否是小写字母 |
isupper | 检查一个字符是否是大写字母 |
isdigit | 检查字符是否为数字 |
isxdigit | 检查一个字符是否是十六进制的字符 |
iscntrl | 检查一个字符是否是控制字符 |
isgragh | 检查一个字符是否是图形字符 |
isspace | 检查一个字符是否是空白字符 |
isblank (C99) | 检查一个字符是否是空格字符 |
isprint | 检查一个字符是否是可打印字符 |
ispunct | 检查一个字符是否是标点字符 |
isalnum
功能:检查一个字符是否是字母或数字
说明:字符为‘0’~‘9’、‘a’~‘z’、‘A’~‘Z’时,返回非零值,否则返回零
定义:
int isalnum( int ch );
示例:
printf("%d\n", isalnum('7')); //返回值:4 —— 真 printf("%d\n", isalnum('A')); //返回值:1 —— 真 printf("%d\n", isalnum('z')); //返回值:2 —— 真 printf("%d\n", isalnum('+')); //返回值:0 —— 假
isalpha
功能:检查一个字符是否是字母
说明:字符为‘a’~‘z’、‘A’~‘Z’时,返回非零值,否则返回零
定义:
int isalpha( int ch );
示例:
printf("%d\n", isalpha('7')); // 0 printf("%d\n", isalpha('A')); // 1 printf("%d\n", isalpha('z')); // 2 printf("%d\n", isalpha('+')); // 0
islower
功能:检查一个字符是否是小写字母
说明:字符为‘a’~‘z’时,返回非零值,否则返回零
定义:
int islower( int ch );
示例:
printf("%d\n", islower('7')); // 0 printf("%d\n", islower('A')); // 0 printf("%d\n", islower('z')); // 2 printf("%d\n", islower('+')); // 0
isupper
功能:检查一个字符是否是大写字母
说明:字符为‘A’~‘Z’时,返回非零值,否则返回零
定义:
int isupper( int ch );
示例:
printf("%d\n", isupper('7')); // 0 printf("%d\n", isupper('A')); // 1 printf("%d\n", isupper('z')); // 0 printf("%d\n", isupper('+')); // 0
isdigit
功能:检查字符是否为数字
说明:字符为‘0’~‘9’时,返回非零值,否则返回零
定义:
int isdigit( int ch );
示例:
printf("%d\n", isdigit('7')); // 1 printf("%d\n", isdigit('A')); // 0 printf("%d\n", isdigit('g')); // 0 printf("%d\n", isdigit('+')); // 0
isxdigit
功能:检查一个字符是否是十六进制的字符
说明:字符为‘0’~‘9’、‘a’~‘f’、‘A’~‘F’时,返回非零值,否则返回零
定义:
int isxdigit( int ch );
示例:
printf("%d\n", isxdigit('7')); // 128 printf("%d\n", isxdigit('A')); // 128 printf("%d\n", isxdigit('H')); // 0 printf("%d\n", isxdigit('b')); // 128 printf("%d\n", isxdigit('g')); // 0 printf("%d\n", isxdigit('+')); // 0
iscntrl
功能:检查一个字符是否是控制字符
说明:若是控制字符,返回非零值,否则返回零
(控制字符:ASCLL编码 0x00 ~ 0x1F 及 0x7F)
定义:
int iscntrl( int ch );
示例:
printf("%d\n", iscntrl('\x00')); // 32 printf("%d\n", iscntrl('\x1F')); // 32 printf("%d\n", iscntrl('\x7F')); // 32 printf("%d\n", iscntrl('9')); // 0 printf("%d\n", iscntrl('A')); // 0
isgragh
功能:检查一个字符是否是图形字符
说明:若是图形字符,返回非零值,否则返回零(C语言所有图形字符:
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ )定义:
int isgraph( int ch );
示例:
printf("%d\n", isgraph('5')); // 4 printf("%d\n", isgraph('B')); // 1 printf("%d\n", isgraph('f')); // 2 printf("%d\n", isgraph('&')); // 16
isspace
功能:检查一个字符是否是空白字符
说明:若为空白字符(空格' ',换页'\f',换行'\n',回车'\r',水平制表符'\t',垂直制表符'\v')
返回非零值,否则返回零
定义:
int isspace( int ch );
示例:
printf("%d\n", isspace(' ')); // 8 printf("%d\n", isspace('\r')); // 8 printf("%d\n", isspace('f')); // 0 printf("%d\n", isspace('&')); // 0
isblank
功能:检查一个字符是否是空格字符
说明:若为空格字符(空格' ',水平制表符'\t') 返回非零值,否则返回零
定义:
int isblank( int ch );
示例:
printf("%d\n", isblank(' ')); // 1 printf("%d\n", isblank('\t')); // 1 printf("%d\n", isblank('\r')); // 0 printf("%d\n", isblank('6')); // 0
isprint
功能:检查一个字符是否是可打印字符
说明:若为可打印字符(图形字符 + 空格字符) 返回非零值,否则返回零
定义:
int isprint( int ch );
示例:
printf("%d\n", isprint(' ')); // 64 printf("%d\n", isprint('*')); // 16 printf("%d\n", isprint('8')); // 4 printf("%d\n", isprint('\t')); // 0
ispunct
功能:检查一个字符是否是标点字符
说明:若为标点字符(! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ ) 返回非零值,否
则返回零
定义:
int ispunct( int ch );
示例:
printf("%d\n", ispunct('[')); // 16 printf("%d\n", ispunct('*')); // 16 printf("%d\n", ispunct('8')); // 0 printf("%d\n", ispunct('b')); // 0
字符转换函数
函数 | 功能 |
tolower | 将字符转换成小写 |
toupper | 将字符转换成大写 |
tolower
功能:将字符(大写字母)转换成小写
定义:
int tolower( int ch );
示例:
printf("%c\n", tolower('A')); // a printf("%c\n", tolower('H')); // h printf("%c\n", tolower('g')); // g(不变)
toupper
功能:将字符(小写字母)转换成大写
定义:
int toupper( int ch );
示例:
printf("%c\n", toupper('a')); // A printf("%c\n", toupper('h')); // H printf("%c\n", toupper('G')); // G
总结几类字符
控制字符(不可打印字符)
ASCLL码编号:0 ~ 31 、 127
十进制 | 缩写 | 字符名 | 十进制 | 缩写 | 字符名 |
0 | NUL | 空 | 16 | DLE | 数据链路转义 |
1 | SOH | 报头开始 | 17 | DC1 | 设备控制1 |
2 | STX | 正文开始 | 18 | DC2 | 设备控制2 |
3 | ETX | 正文结束 | 19 | DC3 | 设备控制3 |
4 | EOT | 传输结束 | 20 | DC4 | 设备控制4 |
5 | ENQ | 查询 | 21 | NAK | 否认 |
6 | ACK | 确认 | 22 | SYN | 同步空闲 |
7 | BEL | 振铃 | 23 | ETB | 传输块结束 |
8 | BS | 退格 | 24 | CAN | 取消 |
9 | HT | 水平制表 | 25 | EM | 介质结束 |
10 | LF | 换行 | 26 | SUB | 替换 |
11 | VT | 垂直制表 | 27 | ESC | 转义 |
12 | FF | 换页 | 28 | FS | 文件分隔符 |
13 | CR | 回车 | 29 | GS | 分组符 |
14 | SO | 移出 | 30 | RS | 记录分隔符 |
15 | SI | 移入 | 31 | US | 单元分隔符 |
127 | DEL | 删除 |
可打印字符
控制字符(不可打印字符)以外的其余字符
(图形字符 + 空格' ')
图形字符
标点字符 + 字母字符 + 数字字符
空白字符
编码 | 转义字符 | 解释 | 编码 | 转义字符 | 解释 |
9 | '\t' | 水平制表符 | 12 | '\f' | 换页键 |
10 | '\n' | 换行键 | 13 | '\r' | 回车键 |
11 | '\v' | 垂直制表符 | 32 | ' ' | 空格 |
空格字符
编码 | 转义字符 | 解释 | 编码 | 转义字符 | 解释 |
9 | '\t' | 水平制表符 | 32 | ' ' | 空格 |
标点字符
编码 | 字符 | 编码 | 标点 | 编码 | 标点 |
33 | ! | 34 | " | 35 | # |
36 | $ | 37 | % | 38 | & |
39 | ' | 40 | ( | 41 | ) |
42 | * | 43 | + | 44 | , |
45 | - | 46 | . | 47 | / |
58 | : | 59 | ; | 60 | < |
61 | = | 62 | > | 63 | ? |
64 | @ | 91 | [ | 92 | \ |
93 | ] | 94 | ^ | 95 | _ |
96 | ` | 123 | { | 124 | | |
125 | } | 126 | ~ |
字母字符
‘A’ ~ ‘Z’ :对应编号 65 ~ 90
‘a’ ~ ‘z’ :对应编号 97 ~ 122
数字字符
‘0’ ~ ‘9’ :对应编号 48 ~ 57