比较两个字符串中指定数目的字符(不考虑大小写)。

重要

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

语法

int _strnicmp(
   const char *string1,
   const char *string2,
   size_t count
);
int _wcsnicmp(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count
);
int _mbsnicmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _strnicmp_l(
   const char *string1,
   const char *string2,
   size_t count,
   _locale_t locale
);
int _wcsnicmp_l(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count,
   _locale_t locale
);
int _mbsnicmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

参数

%>
要比较的 null 终止的字符串。

count
要比较的字符数。

locale
要使用的区域设置。

返回值

指示子字符串之间的关系,如下所示。

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

参数验证错误时,这些函数返回 _NLSCMPERROR,该返回值是在 <string.h> 和 <mbstring.h> 中定义的。

注解

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

ASCII 表中从 91 到 96 的字符(“[”、“\”、“]”、“^”、“_”和“`”)的计算结果小于任意字母字符。 此排序等同于 stricmp 的排序。

_wcsnicmp_mbsnicmp 分别是 _strnicmp 的宽字符及多字节字符版本。 _wcsnicmp 的自变量是宽字符字符串。 _mbsnicmp 的自变量是多字节字符字符串。 _mbsnicmp 根据当前的多字节代码页识别多字节字符序列,并在发生错误时返回 _NLSCMPERROR。 有关详细信息,请参阅代码页。 否则这三个函数否则具有相同行为。 这些函数受到区域设置的影响:没有 _l 后缀的版本对其与区域设置相关的行为使用当前区域设置;而带有 _l 后缀的版本则使用传入的 locale。 有关详细信息,请参阅 Locale

所有这些函数都验证其参数。 如果 string1string2 是 null 指针,则调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则这些函数将返回 _NLSCMPERROR 并将 errno 设置为 EINVAL

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

一般文本例程映射

TCHAR.H 例程 _UNICODE_MBCS 未定义 _MBCS 已定义 _UNICODE 已定义
_tcsncicmp _strnicmp _mbsnicmp _wcsnicmp
_tcsnicmp _strnicmp _mbsnbicmp _wcsnicmp
_tcsncicmp_l _strnicmp_l _mbsnicmp_l _wcsnicmp_l

要求

例程 必需的标头
%> <string.h>
%> <string.h> 或 <wchar.h>
%> <mbstring.h>

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

示例

请参阅 strncmp 的示例。

另请参阅

字符串操作
.- .
.- .
.- .