_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Сравнивает указанное количество символов двух строк без учета регистра.

Важно!

Функции _mbsnicmp и _mbsnicmp_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

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
Строки с завершающим нулем для сравнения.

count
Число сравниваемых символов.

locale
Используемый языковой стандарт.

Возвращаемое значение

Отражает связь между подстроками указанным ниже образом.

Возвращаемое значение Description
< 0 Подстрока string1 меньше, чем подстрока string2.
0 Подстрока string1 идентична подстроке string2.
> 0 Подстрока string1 больше, чем подстрока string2.

При ошибке проверки параметров возвращаются эти функции _NLSCMPERROR, определенные в <string.h> и <mbstring.h>.

Замечания

Функция сравнивает, по крайней _strnicmp мере, первые count символы string1 и string2. Сравнение выполняется без учета регистра путем преобразования каждого символа в нижний регистр. _strnicmp — не чувствительная к регистру версия strncmp. Сравнение заканчивается, если был достигнут завершающий нуль-символ в любой из строк до того, как были сравнены count симв. Если строки равны, когда завершающий нуль-символ достигается в любой из строк до того, как count симв. сравнены, более короткая строка считается меньшей.

Символы от 91 до 96 в таблице ASCII ("[", "\", "]", "^", "_" и """ оцениваются как меньше любого алфавитного символа. Такое упорядочение идентично используемому функцией 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

Требования

Маршрут Обязательный заголовок
_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