_ismbb
例程
使用当前区域设置或指定 LC_CTYPE
转换状态类别,针对特定条件测试给定整数值 c
。
%>
%>
%>
%>
%>
%>
%>
%>
%>
%>
%>
%>
备注
_ismbb
系列中的每个例程会针对特定条件测试给定整数值 c
。 测试结果取决于有效的多字节代码页。 默认情况下,多字节代码页设置为在程序启动时从操作系统获取的 ANSI 代码页。 可使用 _getmbcp
查询所使用的多字节代码页,或使用 _setmbcp
更改它。
输出值受区域设置的 LC_CTYPE
类别设置影响;有关详细信息,请参阅 setlocale
, _wsetlocale
。 这些不带 _l
后缀的函数的版本将当前区域设置用于此依赖于区域设置的行为;带有 _l
后缀的版本与之相同,只不过它们改用传入的区域设置参数。
_ismbb
系列中的例程按如下所示测试给定整数 c
。
例程 | 字节测试条件 |
---|---|
_ismbbalnum |
isalnum(c) || _ismbbkalnum(c) |
_ismbbalpha |
isalpha(c) || _ismbbkalpha(c) |
_ismbbblank |
isblank(c) |
_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(c) || _ismbbkprint(c) 。 ismbbprint 包含空格字符 (0x20) |
_ismbbpunct |
ispunct(c) || _ismbbkpunct(c) 。 |
_ismbbtrail |
多字节字符的第二个字节。 例如,仅在代码页 932 中,有效范围为 0x40 - 0x7E 以及 0x80 - 0xEC |
下表显示组成这些例程测试条件的 |
组合值。 清单常量 _BLANK
、_DIGIT
、_LOWER
、_PUNCT
和 _UPPER
在 ctype.h
中进行定义。
例程 | _BLANK |
_DIGIT |
LOWER |
_PUNCT |
UPPER |
非 ASCII text |
非 ASCII 标点 |
---|---|---|---|---|---|---|---|
_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
例程
%>
%>