以下函数用于字符分类,返回非零值为 true,返回 0 则为 false。除 isascii() 函数外,所有其他函数均是 locale sensitive,特别是对于当前语言环境的 LC_CTYPE 类别。
测试字母字符
测试字母数字字符
测试 7 位 US-ASCII 字符
测试空白字符
测试控制字符
测试十进制数字
测试可见字符
测试小写字母
测试可列显字符
测试标点符号
测试空格字符
测试大写字母
测试十六进制数字
这些函数不得应用于包含多字节代码集(如 UTF-8)的语言环境。针对多字节代码集使用下节中介绍的宽字符分类函数。
其中一些函数的行为还取决于编译时使用的编译器选项。ctype(3C) 手册页介绍了 isalpha()、isgraph()、isprint() 和 isxdigit() 函数的 "Default"(缺省)和 "Standard Conforming"(符合标准)行为。例如,isalpha() 函数定义如下所示:
测试 isupper() 或 islower() 为 true 的任何字符。
测试 isupper() 或 islower() 为 true 的任何字符、或者 iscntrl()、isdigit()、ispunct() 和 isspace() 均不为 true 且作为当前语言环境定义的字符集之一的任何字符。在 C 语言环境中,仅当字符的 isupper() 或 islower() 为 true 时,isalpha() 才针对该字符返回 true。
对于其字母不区分大小写(也称为 unicase)的语言或字母(如阿拉伯文、希伯来文或泰文),这会产生一定的影响。对于希伯来文语言环境 he_IL.ISO8859-8 中字母字符(如 aleph (0xE0)),函数 isupper() 和 islower() 将始终返回 false。因此,甚至 isalpha() 函数也始终返回 false。如果为符合标准的行为启用了编译器选项,isalpha() 函数将针对此类字符返回 true。有关更多信息,请参见 isalpha(3C) 和 standards(5) 手册页。
另请参见《Oracle Solaris Studio 12.3:C 用户指南》、ctype(3C) 和 SUSv3(5) 手册页。