_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
, _mbsnicmp_l
比较两个字符串中指定数目的字符(不考虑大小写)。
重要
_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
);
参数
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
。 有关详细信息,请参阅 Locale。
所有这些函数都验证其参数。 如果 string1
或 string2
是 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 |
要求
例程 | 必需的标头 |
---|---|
_strnicmp ,_strnicmp_l |
<string.h> |
_wcsnicmp ,_wcsnicmp_l |
<string.h> 或 <wchar.h> |
_mbsnicmp ,_mbsnicmp_l |
<mbstring.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
请参阅 strncmp
的示例。
另请参阅
字符串操作
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
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈