_ismbb 例程

使用当前区域设置或指定 LC_CTYPE 转换状态类别,针对特定条件测试给定整数值 c

_ismbbalnum、_ismbbalnum_l _ismbbkprint、_ismbbkprint_l
_ismbbalpha、_ismbbalpha_l _ismbbkpunct、_ismbbkpunct_l
_ismbbblank、_ismbbblank_l _ismbblead、_ismbblead_l
_ismbbgraph、_ismbbgraph_l _ismbbprint、_ismbbprint_l
_ismbbkalnum、_ismbbkalnum_l _ismbbpunct、_ismbbpunct_l
_ismbbkana、_ismbbkana_l _ismbbtrail、_ismbbtrail_l

备注

_ismbb 系列中的每个例程会针对特定条件测试给定整数值 c 。 测试结果取决于有效的多字节代码页。 默认情况下,多字节代码页设置为在程序启动时从操作系统获取的 ANSI 代码页。 可使用 _getmbcp 查询所使用的多字节代码页,或使用 _setmbcp 更改它。

输出值受区域设置的 LC_CTYPE 类别设置的影响;有关详细信息,请参阅 setlocale、_wsetlocale。 这些不带 _l 后缀的函数的版本将当前区域设置用于此依赖于区域设置的行为;带有 _l 后缀的版本与之相同,只不过它们改用传入的区域设置参数。

_ismbb 系列中的例程按如下所示测试给定整数 c

例程 字节测试条件
_ismbbalnum isalnum || _ismbbkalnum.
_ismbbalpha isalpha || _ismbbkalnum.
_ismbbblank isblank
_ismbbgraph _ismbbprint相同,但是 _ismbbgraph 不包含空格字符 (0x20)。
_ismbbkalnum 标点以外的非 ASCII 文本符号。 例如,仅在代码页 932 中, _ismbbkalnum 测试片假名字母数字。
_ismbbkana 片假名 (0xA1 - 0xDF)。 特定于代码页 932。
_ismbbkprint 非 ASCII 文本或非 ASCII 标点符号。 例如,仅在代码页 932 中,_ismbbkprint 测试片假名字母数字或片假名标点(范围:0xA1 - 0xDF)。
_ismbbkpunct 非 ASCII 标点。 例如,仅在代码页 932 中, _ismbbkpunct 测试片假名标点。
_ismbblead 多字节字符的第一个字节。 例如,仅在代码页 932 中,有效范围为 0x81 - 0x9F 以及 0xE0 - 0xFC。
_ismbbprint isprint || _ismbbkprint. ismbbprint 包含空白字符 (0x20)。
_ismbbpunct ispunct || _ismbbkpunct.
_ismbbtrail 多字节字符的第二个字节。 例如,仅在代码页 932 中,有效范围为 0x40 - 0x7E 以及 0x80 - 0xEC。

下表显示组成这些例程测试条件的经过“或”运算的值。 清单常量 _BLANK_DIGIT_LOWER_PUNCT_UPPER 在 Ctype.h 中进行定义。

例程 _BLANK _DIGIT LOWER _PUNCT UPPER Non-

ASCII

文本
Non-

ASCII

punct
_ismbbalnum x x x x
_ismbbalpha x x x
_ismbbblank x
_ismbbgraph x x x x x x
_ismbbkalnum x
_ismbbkprint x x
_ismbbkpunct x
_ismbbprint x x x x x x x
_ismbbpunct x x

_ismbb 例程同时以函数和宏的形式来实现。 若要深入了解如何选择任一实现,请参阅关于选择函数和宏的建议

另请参阅

字节分类
is、isw 例程
_mbbtombc、_mbbtombc_l
_mbctombb、_mbctombb_l