Поделиться через


_strnicoll, _wcsnicoll, _mbsnicoll, _strnicoll_l, _wcsnicoll_l, _mbsnicoll_l

Сравнивает строки на основе данных языкового стандарта.

Важно!

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

Синтаксис

int _strnicoll(
   const char *string1,
   const char *string2,
   size_t count
);
int _wcsnicoll(
   const wchar_t *string1,
   const wchar_t *string2 ,
   size_t count
);
int _mbsnicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _strnicoll_l(
   const char *string1,
   const char *string2,
   size_t count,
   _locale_t locale
);
int _wcsnicoll_l(
   const wchar_t *string1,
   const wchar_t *string2 ,
   size_t count,
   _locale_t locale
);
int _mbsnicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Параметры

string1, string2
Строки с завершающим нулем для сравнения

count
Количество символов для сравнения

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

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

Каждая из этих функций возвращает значение, указывающее связь подстроок string1 и string2, как показано ниже.

Возвращаемое значение Отношение string1 к string2
< 0 string1 меньше string2
0 string1 идентично string2
> 0 string1 больше string2

Каждая из этих функций возвращает _NLSCMPERROR. Чтобы использовать функцию _NLSCMPERROR, включите STRING.H или MBSTRING.H. _wcsnicoll может завершиться ошибкой, если string1 или string2 содержит коды расширенных символов, не входящие в последовательность сортировки. При возникновении ошибки _wcsnicoll может присвоить параметру errno значение EINVAL. Чтобы убедиться, не возникает ли ошибка при вызове функции _wcsnicoll, присвойте параметру errno значение 0 и проверьте errno после вызова функции _wcsnicoll.

Замечания

Каждая из этих функций сравнивает с учетом регистра первые несколько символов в строках string1 и string2 на основе кодовой страницы (количество сравниваемых символов определяется параметром count). Эти функции следует использовать только в том случае, если в кодовой странице имеется разница между порядком набора символов и лексографическим порядком символов, и это различие представляет интерес для сравнения строк. Версии этих функций без суффикса _l используют текущий языковой стандарт и кодовую страницу. Версии с суффиксом _l идентичны, за исключением того, что они используют переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.

Все эти функции проверяют свои параметры. Если или string1string2 имеет значение NULL, или если число больше INT_MAX, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции возвращают _NLSCMPERROR и устанавливают для errno значение EINVAL.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsncicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

Требования

Маршрут Обязательный заголовок
_strnicoll, _strnicoll_l <string.h>
_wcsnicoll, _wcsnicoll_l <wchar.h> или <string.h>
_mbsnicoll, _mbsnicoll_l <mbstring.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Локаль
Обработка строк
Функции strcoll
localeconv
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
setlocale, _wsetlocale
strcmp, wcscmp, _mbscmp
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l