字符分类

其中的每个例程均针对条件满意度测试指定的单字节字符、宽字符或多字节字符。 (根据定义,0 和 127 之间的 ASCII 字符集是所有多字节字符集的子集。例如,日语片假名既包括 ASCII 又包括非 ASCII 字符。)

测试条件受区域设置的 LC_CTYPE 类别设置影响。 有关详细信息,请参阅 setlocale。 这些不带 _l 后缀的函数的版本使用为该区域设置相关的行为的当前区域设置;带有 _l 后缀的版本相同,只不过它们使用传递的区域设置参数。

与你可能编写的测试相比,这些例程的执行速度通常更快,因此应优先考虑。 例如,以下代码执行速度慢于调用 isalpha(c)

if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
    return TRUE;

字符分类例程

例程 字符测试条件
字母数字
多字节字母数字
字母顺序
.- . ASCII
空白(空格或水平制表符)
控制
字母、下划线或数字
字母或下划线
十进制数字
可打印(空格除外)
小写
平假名
片假名
有效的多字节字符
日本 0 级多字节字符
日本 1 级多字节字符
日本 2 级多字节字符
非字母数字的多字节字符
可打印
标点
空格
大写
desc 参数指定的属性
十六进制数
.- . 返回有效的多字节字符的长度;结果取决于当前区域设置的 LC_CTYPE 类别设置

另请参阅

按类别分的通用 C 运行时例程