字节分类
其中的每个例程均针对条件满意度测试多字节字符的指定字节。 除非另有指定,否则输出值受区域设置的 LC_CTYPE
类别设置影响。 有关详细信息,请参阅 setlocale
。 这些不带 _l
后缀的函数的版本使用为该区域设置相关的行为的当前区域设置;带有 _l
后缀的版本相同,只不过它们使用传递的区域设置参数。
注意
根据定义,0 和 127 之间的 ASCII 字符是所有多字节字符集的子集。 例如,日语的片假名字符集包括 ASCII 以及非 ASCII 字符。
下表中的预定义常量在 <ctype.h>
中定义。
多字节字符的字节分类例程
例程 | 字节测试条件 |
---|---|
%> | 前导字节;测试结果取决于当前区域设置的 LC_CTYPE 类别设置 |
%> | isalnum || _ismbbkalnum |
%> | isalpha || _ismbbkalpha |
%> | 与 _ismbbprint 相同,但是 _ismbbgraph 不包含空格字符 (0x20) |
%> | 标点以外的非 ASCII 文本符号。 例如,仅在代码页 932 中,_ismbbkalnum 测试片假名字母数字 |
%> | 片假名 (0xA1 - 0xDF),仅代码页 932 |
%> | 非 ASCII 文本或非 ASCII 标点符号。 例如,仅在代码页 932 中,_ismbbkprint 测试片假名字母数字或片假名标点(范围:0xA1 - 0xDF)。 |
%> | 非 ASCII 标点。 例如,仅在代码页 932 中,_ismbbkpunct 测试片假名标点。 |
%> | 多字节字符的第一个字节。 例如,仅在代码页 932 中,有效范围为 0x81 - 0x9F 以及 0xE0 - 0xFC。 |
%> | isprint || _ismbbkprint 。 ismbbprint 包含空格字符 (0x20) |
%> | ispunct || _ismbbkpunct |
%> | 多字节字符的第二个字节。 例如,仅在代码页 932 中,有效范围为 0x40 - 0x7E 以及 0x80 - 0xEC。 |
%> | 前导字节(在字符串上下文中) |
%> | 结尾字节(在字符串上下文中) |
%> | 基于上一个字节返回字节类型 |
%> | 返回字符串内的字节类型 |
mbsinit |
跟踪多字节字符转换的状态。 |
在 <limits.h>
中定义的 MB_LEN_MAX
宏扩展到任意多字节字符可具有的最大字节长度。 在 <stdlib.h>
中定义的 MB_CUR_MAX
扩展到当前区域设置中任意多字节字符的最大字节长度。