介绍
此头声明了一些用于对单个字符进行分类或转换的函数。
这些函数的函数原型都是这样的格式:int 函数名( int c );
。这些函数都以一个 int
类型的参数 c
作为要处理的字符或 EOF
,再返回一个 int
类型的值,该值可能是另一个字符,也可能是一个表示布尔值的值,具体取决于函数的功能。
字符分类函数
返回值都表示判断结果。
字母、数字与符号判断
被视为“字母、符号”的字符可能取决于系统所使用的语言环境。
在默认的“C”语言环境中,构成字母的是 ASCII 中 A~z
的内容,其中,小写字母为 ASCII 中 a~z
的内容,大写字母为 ASCII 中 A~Z
的内容;构成十进制数字的是 ASCII 中 0~9
的内容;构成十六进制数字的是 ASCII 中 0~9
、a~f
与 A~F
的内容;而标点符号视为所有具有图形表示的非字母数字的字符(即字符 c
符合!isalnum(c)&&isgraph(c)
)。
isalnum
检查字符是否为字母或数字。
isalpha
检查字符是否为字母。
islower
检查字符是否为小写字母。
isupper
检查字符是否为大写字母。
isdigit
检查字符是否为十进制数字。
isxdigit
检查字符是否为十六进制数字。
ispunct
检查字符是否为标点符号。
空白判断
被视为“空白字符、空格”的字符可能取决于系统所使用的语言环境。
isblank
检查字符是否为空格。
标准的“C”语言环境将空白字符视为制表符('\t'
)和空格字符(' '
)。
其他语言环境中,空格必须也为空白字符。
isspace
检查字符是否为空白字符。
对于“C”语言环境,空白字符是以下任何一种:
字符 | 十六进制表示 | 描述 |
---|---|---|
' ' | 0x20 | 空格(SPC) |
'\t' | 0x09 | 水平制表符(TAB) |
'\n' | 0x0a | 换行符(LF) |
'\v' | 0x0b | 垂直制表符(VT) |
'\f' | 0x0c | 换页符(FF) |
'\r' | 0x0d | 回车(CR) |
可打印字符与控制字符判断
在默认的“C”语言环境中,对于标准 ASCII 字符集,打印字符均使用大于 0x1f
(US)的 ASCII 代码,0x7f
(DEL)除外。其他都为控制字符。
iscntrl
检查字符是否为控制字符。
isprint
检查字符是否为可打印字符。
isgraph
检查字符是否具有图形表示。
isgraph
在与 isprint
相同的情况下返回 true
,除了检查空格字符 (' '
)时会返回 false
。
字符转换函数
返回值都表示转换结果,为一个字符。
大小写转换
如果无法转换,则返回的值 c 不变。在默认的“C”语言环境中的大小写字符定义参考字母、数字与符号判断。
tolower
将字母转换为小写字母。
toupper
将字母转换为大写字母。