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


_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l

Сравнивает строки с помощью информации, характерной для языкового стандарта.

Важно!

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

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.

Заметки

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

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

Универсальное текстовое сопоставление функций

Подпрограмма 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>

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

Эквивалент в .NET Framework

System::String::Compare

См. также

Ссылки

Языковой стандарт

Управление строками (CRT)

Функции 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