英文原文:http://www.cplusplus.com/reference/clibrary/cctype/
cctype (ctype.h)
字符处理函数
这个头文件声明了一系列用来分类和转换单个字符的函数。
所有这些函数都把参数(单个字符)视为与之等值的整数,并且返回一个整数。该返回值可能是另外一个字符,也可能是一个代表布尔值的值(0表示 false,而另外一个不等于0的整数代表 true)。
这里有两类函数:
首先,归类函数可以检查作为参数传递过来的单个字符是否属于某一特定类。如下所示:
isalnum 检查字符是否是字母或者数字(函数)
isalpha 检查字符是否是字母(函数)
iscntrl 检查字符是否是控制字符(函数)
isdigit 检查字符是否是十进制数字(函数)
isgraph 检测字符是否为可显示字符(函数)
islower 检测字符是否为小写字母(函数)
isprint 检测字符是否为可打印字符(函数)
ispunct 检测字符是否为标点符号(函数)
isspace 检测字符是否为空白(函数)
isupper 检测字符是否为大写字母(函数)
isxdigit 检查字符是否是十六进制数字(函数)
其次,下面两个函数可以转换字母大小写:
tolower 将大写字母转换成小写字母(函数)
toupper 将小写字母转换成大写字母(函数)
对于第一类函数,这里是一个关于每个函数是怎么考虑原始的127个ASCII字符的图表。(x 表示该函数处理那个字符时,会返回true)
ASCII values | characters | iscntrl | isspace | isupper | islower | isalpha | isdigit | isxdigit | isalnum | ispunct | isgraph | isprint |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 .. 0x08 | NUL, (other control codes) | x | ||||||||||
0x09 .. 0x0D | (white-space control codes: '\t','\f','\v','\n','\r') | x | x | |||||||||
0x0E .. 0x1F | (other control codes) | x | ||||||||||
0x20 | space (' ') | x | x | |||||||||
0x21 .. 0x2F | !"#$%&'()*+,-./ | x | x | x | ||||||||
0x30 .. 0x39 | 0123456789 | x | x | x | x | x | ||||||
0x3a .. 0x40 | :;<=>?@ | x | x | x | ||||||||
0x41 .. 0x46 | ABCDEF | x | x | x | x | x | x | |||||
0x47 .. 0x5A | GHIJKLMNOPQRSTUVWXYZ | x | x | x | x | x | ||||||
0x5B .. 0x60 | [\]^_` | x | x | x | ||||||||
0x61 .. 0x66 | abcdef | x | x | x | x | x | x | |||||
0x67 .. 0x7A | ghijklmnopqrstuvwxyz | x | x | x | x | x | ||||||
0x7B .. 0x7E | {|}~ | x | x | x | ||||||||
0x7F | (DEL) | x |
扩展字符(0x7F以后的字符)可能属于多种不同的种类,依赖于local地区设置和平台。作为一个通用规则,在支持扩展字符的大多数平台上,对于标准的C语言local地区设置而言,ispunct, isgraph 和 isprint在处理这些扩展字符时,都会返回true。