_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l

比较两个字符串的字符(不考虑大小写)。

重要

_mbsnicmp 和 _mbsnicmp_l 无法用于在 Windows 运行时 中执行的应用程序。有关更多信息,请参见 CRT 函数不支持使用 /ZW

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 );

参数

  • string1, string2
    要比较的 null 终止的字符串。

  • count
    要比较的字符数。

  • locale
    要使用的区域设置。

返回值

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

返回值

描述

< 0

string1 子字符串小于 string2 子字符串。

0

string1 子字符串等于 string2 子字符串。

> 0

string1 子字符串大于 string2 子字符串。

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

备注

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

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

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

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

一般文本例程映射

TCHAR.H 例程

未定义 _UNICODE 和 _MBCS

已定义 _MBCS

已定义 _UNICODE

_tcsncicmp

_strnicmp

_mbsnicmp

_wcsnicmp

_tcsnicmp

_strnicmp

_mbsnbicmp

_wcsnicmp

_tcsncicmp_l

_strnicmp_l

_mbsnicmp_l

_wcsnicmp_l

要求

例程

必需的标头

_strnicmp, _strnicmp_l

<string.h>

_wcsnicmp, _wcsnicmp_l

<string.h> 或 <wchar.h>

_mbsnicmp, _mbsnicmp_l

<mbstring.h>

有关其他兼容性信息,请参见兼容性

示例

请参阅 strncme 的示例。

.NET Framework 等效项

System::String::Compare

请参见

参考

字符串操作 (CRT)

strcat、wcscat、_mbscat

strcmp、wcscmp、_mbscmp

strcpy、wcscpy、_mbscpy

strncat、_strncat_l、wcsncat、_wcsncat_l、_mbsncat、_mbsncat_l

strncmp、wcsncmp、_mbsncmp、_mbsncmp_l

strncpy、_strncpy_l、wcsncpy、_wcsncpy_l、_mbsncpy、_mbsncpy_l

strrchr、wcsrchr、_mbsrchr、_mbsrchr_l

_strset、_strset_l、_wcsset、_wcsset_l、_mbsset、_mbsset_l

strspn、wcsspn、_mbsspn、_mbsspn_l