ctype.h
ctype.h里面主要定义了一些字符的测试和转化函数,都是一些类似工具的函数,一共有两类。
1. isxxx函数,这类函数主要提供字符的测试功能,主要有如下几个
int isalnum(int c);
检查是否是字符(a - z)或者数字(0 - 9),如果是则返回非0,否则返回0,这个函数相当于调用isalpha(c) || isdigit(c)
int isalpha(int c);
检查是否是字符(a - z)且不区分大小写,如果是则返回非0,否则返回0,这个函数相当于调用isupper(c) || islower(c)
int isascii(int c);
检查是否在ascii码表里面,也就是说是否在0-127之间,如果是则返回非0,否则返回0
int isblank(int c);
检查是否是space或者tab字符,如果是则返回非0,否则返回0
int iscntrl(int c);
检查是否是控制字符,也就是说是在0x00 - 0x1F之间或者是0x7F(删除符),如果是则返回非0,否则返回0
int isdigit(int c);
检查是否是数字(0-9),如果是返回非0,否则返回0
int isgraph(int c);
检查是否是可打印的字符(不包括space),如果是返回非0,否则返回0
int islower(int c);
检查是否是小写字母,如果是返回非0,否则返回0
int isprint(int c);
检查是否是可打印的字符(包括space),如果是返回非0,否则返回0
int ispunct(int c);
这个函数man手册中是这样说的,检查是否是可打印的字符(不包括space和字母),那剩下的就只剩标点和特殊字符了,所以实际使用的时候用来检查是否是标点和特殊字符,如果是返回非0,否则返回0
int isspace(int c);
检查是否是‘空白’字符,在”C”和”PSOIX”标准里面,这些字符包括:space(空格),’\f’(换页),’\n’(换行),’\r’(回车),’\t’(水平制表),’\v’(垂直制表),如果是返回非0,否则返回0
int isupper(int c);
检查是否是大写字母,如果是返回非0,否则返回0
int isxdigit(int c);
检查是否是16进制的数字(0 - F)且不区分大小心,如果是返回非0,否则返回0
2. toupper和tolower这两个函数提供了大小写转化的功能
int toupper(int c);
将一个字母转化成大写,如果成功则返回大写c,否则返回c
int tolower(int c);
将一个字母转化成小写,如果成功则返回小写c,否则返回c
上面两类函数虽然参数都是int类型,但其实参数的范围必须是unsigned char范围之内或者是EOF,超过了范围会返回0