字符分类
其中的每个例程均针对条件满意度测试指定的单字节字符、宽字符或多字节字符。 (根据定义,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 类别设置 |