字符处理有两类函数:分类和转换,每个字符分类函数的名称以is开头,返回int类型的值,在参数为指定类时为非0值即真,否则为0即假,每个字符转换函数的名称以to开头,返回int类型的值,表示一个字符或EOF。字符处理函数在库头文件ctype.h中声明,另外,C89增补1定义了对宽字符进行运算的分类与转换函数,与普通字符对应,在头文件wctype.h中声明。
字符分类处理函数具体如下:
// ctype.h
int isalnum(int c); // isalnum函数测试c是否是字母数字字符
isalpha 测试是否是字母字符
iscntrl 测试是否是控制符
isascii 测试是否在0~127之间(不属于标准C语言,但是属于C语言库的公用扩展)
iscsym 测试是否可以作为C语言的标识符字符(不在标准C语言中)
iscsymf 测试是否可以作为标识符的第一个字符(不在标准C语言中)
isdigit 测试是否是10个十进制数字之一
isxdigit 测试是否是22个十六进制数字之一
isprint 测试是否是打印字符(即任何非控制字符)
isgraph 测试是否是图形字符的代码(即除空格以外的任何打印字符)
ispunct 测试是否是标点符号的代码
islower 测试是否是26个小写字母之一
isupper 测试是否是26个大写字母之一
isspace 测试是否是空白符的代码(包括制表符、回车符、换行符、垂直制表符、换页符、空格符)
isblank 测试是否是文本行中分隔单词的字符的编码(包括标准空白符、空格、和水平制表符)
字符转换处理函数具体如下:
// ctype.h
int toascii(int c); // 非标准toascii函数接受任何整数值,将其缩小到有效ASCII字符范围,编码为0~127,放弃数值中除低7位以外的所有位。
toint 非标准toin函数返回十六进制数值的权值
tolower 返回小写字母或原字母
toupper 返回大写字母或原字母