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


_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l

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

Важно!

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

Синтаксис

int _strncoll(
   const char *string1,
   const char *string2,
   size_t count
);
int _wcsncoll(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count
);
int _mbsncoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _strncoll_l(
   const char *string1,
   const char *string2,
   size_t count,
   _locale_t locale
);
int _wcsncoll_l(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count,
   _locale_t locale
);
int _mbsncoll_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. _wcsncoll может завершиться ошибкой, если string1 или string2 содержит коды расширенных символов, не входящие в последовательность сортировки. При возникновении ошибки _wcsncoll может присвоить параметру errno значение EINVAL. Чтобы проверка для ошибки при вызове_wcsncoll, задайте errno значение 0, а затем проверка errno после _wcsncoll вызова.

Замечания

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

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

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

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

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsnccoll _strncoll _mbsncoll _wcsncoll
_tcsncoll _strncoll _mbsnbcoll _wcsncoll

Требования

Маршрут Обязательный заголовок
_strncoll, _strncoll_l <string.h>
_wcsncoll, _wcsncoll_l <wchar.h> или <string.h>
_mbsncoll, _mbsncoll_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