Ctype.h

ctype.h是C標準函数庫中的头文件，定义了一批C语言字符分类函数（C character classification functions），用于测试字符是否属于特定的字符类别，如字母字符、控制字符等等。既支持单字节字符，也支持宽字符。

 实现 
现代的C库中，字符分类函数一般不用比较测试（comparison tests）实现，而是静态查表来实现。

例如，创建一个由256个8位宽整数组成的数组，每个整数的每位对应字符的特定的分类性质，如属于数字、属于字母等等。如果最低位表示属于数字性质，那么可以写成如下代码：

 #define isdigit(x) (TABLE[x] & 1)

早期版本的Linux使用了潜在犯错的方法，类似于：

 #define isdigit(x) ((x) >= '0' && (x) <= '9')

这会产生问题，如宏参数x具有副作用---例如，如果调用isdigit(x++)或isdigit(run_some_program())，可能不是很显然，isdigit的参数将被求值两次。所以，查表的方法被广泛使用。

 函数 

单字节字符处理函数在ctype.h(C++的cctype )中声明。宽字节字符处理函数在wctype.h(C++的cwctype)中声明.

 单字节 宽字节 描述 isalnum iswalnum 是否为字母数字 isalpha iswalpha 是否为字母 islower iswlower 是否为小写字母 isupper iswupper 是否为大写字母 isdigit iswdigit 是否为数字 isxdigit iswxdigit 是否为16进制数字 iscntrl iswcntrl 是否为控制字符 isgraph iswgraph 是否为图形字符（例如，空格、控制字符都不是） isspace iswspace 是否为空格字符（包括制表符、回车符、换行符等） isblank iswblank 是否为空白字符 (C99/C++11新增)（包括水平制表符） isprint iswprint 是否为可打印字符 ispunct iswpunct 是否为标点 tolower towlower 转换为小写 toupper towupper 转换为大写  iswctype 检查一个wchar_t是否是属于指定的分类  towctrans 使用指定的变换映射来转换一个wchar_t（实际上是大小写的转换）  wctype 返回一个宽字符的类别，用于iswctype函数  wctrans 返回一个变换映射，用于 towctrans

参考文献

 外部链接 

V