_mbsbtype_mbsbtype_l

返回字符串中字节的类型。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数

语法

int _mbsbtype(
   const unsigned char *mbstr,
   size_t count
);
int _mbsbtype_l(
   const unsigned char *mbstr,
   size_t count,
   _locale_t locale
);

参数

mbstr
多字节字符序列的地址。

count
字符串头中的字节偏移量。

locale
要使用的区域设置。

返回值

_mbsbtype_mbsbtype_l 返回整数值,指示指定字节的测试结果。 下表中的清单常量在 Mbctype.h 中定义。

返回值 字节类型
_MBC_SINGLE (0) 单字节字符。 例如,在代码页 932 中,如果指定的字节在 0x20 - 0x7E 或 0xA1 - 0xDF 范围内,则 _mbsbtype 返回 0。
_MBC_LEAD (1) 多字节字符的前导字节。 例如,在代码页 932 中,如果指定的字节在 0x81 - 0x9F 或 0xE0 - 0xFC 范围内,则 _mbsbtype 返回 1。
_MBC_TRAIL (2) 多字节字符的尾随字节。 例如,在代码页 932 中,如果指定的字节在 0x40 - 0x7E 或 0x80 - 0xFC 范围内,则 _mbsbtype 返回 2。
_MBC_ILLEGAL (-1) mbstr 中的偏移 count 上的字节前发现 NULL 字符串、无效字符或空字节。

注解

_mbsbtype 函数确定多字节字符字符串中字节的类型。 此函数仅检查 mbstr 中的偏移 count 上的字节,而忽略指定字节前的无效字符。

输出值受区域设置的 LC_CTYPE 类别设置的影响。 有关详细信息,请参阅 setlocale。 此不带 _l 后缀的版本将对与区域设置相关的行为使用当前设置;而带有 _l 后缀的版本也执行相同的操作,只不过它改用传入的区域设置参数。 有关详细信息,请参阅 Locale

如果输入字符串为 NULL,则将调用无效的参数处理程序,如参数验证中所述。 如果允许继续执行,则将 errno 设置为 EINVAL 并且该函数返回 _MBC_ILLEGAL中所述。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

例程 必需的标头 可选标头
_mbsbtype <mbstring.h> <mbctype.h>*
_mbsbtype_l <mbstring.h> <mbctype.h>*

* 用作返回值的清单常量。

有关兼容性的详细信息,请参阅 兼容性

另请参阅

字节分类