检查多字节字符是合法字符还是符号字符。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数。
语法
int _ismbclegal(
unsigned int c
);
int _ismbclegal_l(
unsigned int c,
_locale_t locale
);
int _ismbcsymbol(
unsigned int c
);
int _ismbcsymbol_l(
unsigned int c,
_locale_t locale
);
参数
c
要测试的字符。
locale
要使用的区域设置。
返回值
如果字符满足测试条件,则每个例程都会返回非零值。 否则将返回 0。 如果 c
<= 255,并且有相应的 _ismbb
例程(例如,_ismbcalnum
对应于 _ismbbalnum
),则结果是相应的 _ismbb
例程的返回值。
备注
其中每个函数都针对给定的条件测试给定的多字节字符。
这些带有 _l
后缀的函数的版本相同,只不过它们使用传递区域设置而不是其与区域设置相关的行为的当前区域设置。 有关详细信息,请参阅 Locale。
例程 | 测试条件 | 代码页 932 示例 |
---|---|---|
_ismbclegal |
有效多字节 | 当且仅当 c 的第一个字节在 0x81 - 0x9F 或 0xE0 - 0xFC 范围内,同时第二个字节在 0x40 - 0x7E 或 0x80 - FC 范围内时返回非零值。 |
_ismbcsymbol |
多字节字符 | 当且仅当 0x8141<=c <=0x81AC 时返回非零值。 |
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
一般文本例程映射
Tchar.h 例程 | _UNICODE 和 _MBCS 未定义 |
_MBCS 已定义 |
_UNICODE 已定义 |
---|---|---|---|
_istlegal |
始终返回 false | _ismbclegal |
始终返回 false。 |
_istlegal_l |
始终返回 false | _ismbclegal_l |
始终返回 false。 |
要求
例程 | 必需的标头 |
---|---|
%> | <mbstring.h> |
%> | <mbstring.h> |
有关兼容性的详细信息,请参阅 兼容性。