_mbsnbicmp_mbsnbicmp_l

比较两个多字节字符字符串的 n 个字节,忽略大小写。

重要

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

语法

int _mbsnbicmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);

参数

string1string2
要比较的 null 终止的字符串。

count
要比较的字节数。

返回值

返回值指示子字符串之间的关系。

返回值 说明
< 0 string1 子字符串小于 string2 子字符串。
0 string1 子字符串等于 string2 子字符串。
> 0 string1 子字符串大于 string2 子字符串。

发生错误时,_mbsnbicmp 返回 _NLSCMPERROR,该返回值是在 String.h 和 Mbstring.h 中定义的。

注解

_mbsnbicmp 函数最多对 countstring1 的前 string2 个字节执行序号比较。 通过将每个字符转换为小写进行比较;_mbsnbcmp_mbsnbicmp 的区分大小写版本。 如果比较 count 个字符之前在任一字符串中到达终止 null 字符,则比较停止。 如果比较 count 个字符之前在某一字符串中达到终止 null 字符时两个字符串相等,则较短的字符串较小。

_mbsnbicmp 类似于 _mbsnbcmp,只不过它按 count 个字节(而非按字符)对字符串进行比较。

两个包含位于 ASCII 表中“Z”和“a”之间的字符(“[”、“\”、“]”、“^”、“_”和“`”)的字符串将有不同的比较结果,具体取决于它们的大小写形式。 例如,两个字符串“ABCDE”和“ABCD^”如果比较是小写 ("abcde" > "abcd^"),则比较一种方式,如果比较是大写,则另一种方式 ("ABCDE" < "ABCD^")。

_mbsnbicmp 根据当前使用的多字节代码页识别多字节字符序列。 它不受当前区域设置的影响。

如果 string1string2 为空指针,则 _mbsnbicmp 会调用无效参数处理程序,如参数验证中所述。 如果允许继续执行,则函数将返回 _NLSCMPERROR,并且将 errno 设置为 EINVAL

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

一般文本例程映射

Tchar.h 例程 _UNICODE_MBCS 未定义 _MBCS 已定义 _UNICODE 已定义
_tcsnicmp _strnicmp _mbsnbicmp _wcsnicmp
_tcsnicmp_l _strnicmp_l _mbsnbicmp_l _wcsnicmp_l

要求

例程 必需的标头
_mbsnbicmp <mbstring.h>

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

示例

请参阅 _mbsnbcmp_mbsnbcmp_l 的示例。

另请参阅

字符串操作
_mbsnbcat_mbsnbcat_l
_mbsnbcmp_mbsnbcmp_l
_stricmp_wcsicmp_mbsicmp_stricmp_l_wcsicmp_l_mbsicmp_l