在 Oracle Solaris 中进行应用程序国际化和本地化

退出打印视图

更新时间: 2014 年 7 月
 
 

整数编码的字符分类函数

以下函数用于字符分类,返回非零值为 true,返回 0 则为 false。除 isascii() 函数外,所有其他函数均是 locale sensitive,特别是对于当前语言环境的 LC_CTYPE 类别。

isalpha()

测试字母字符

isalnum()

测试字母数字字符

isascii()

测试 7 位 US-ASCII 字符

isblank()

测试空白字符

iscntrl()

测试控制字符

isdigit()

测试十进制数字

isgraph()

测试可见字符

islower()

测试小写字母

isprint()

测试可列显字符

ispunct()

测试标点符号

isspace()

测试空格字符

isupper()

测试大写字母

isxdigit()

测试十六进制数字

这些函数不得应用于包含多字节代码集(如 UTF-8)的语言环境。针对多字节代码集使用下节中介绍的宽字符分类函数。

其中一些函数的行为还取决于编译时使用的编译器选项。ctype(3C) 手册页介绍了 isalpha()isgraph()isprint()isxdigit() 函数的 "Default"(缺省)和 "Standard Conforming"(符合标准)行为。例如,isalpha() 函数定义如下所示:

Default isalpha()(缺省 isalpha())

测试 isupper()islower() 为 true 的任何字符。

Standard Conforming isalpha()(符合标准 isalpha())

测试 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) 手册页。