_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

Сравнивает n байтов двух строк многобайтовой кодировки с помощью сведений многобайтовой кодовой страницы.

Важно!

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

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Параметры

  • string1, string2
    Строка для сравнения.

  • count
    Число байтов для сравнения.

  • locale
    Языковой стандарт, который необходимо использовать.

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

Возвращаемое значение указывает отношение подстрок string1 и string2.

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

Описание

< 0

подстрока string1 меньше, чем подстрока string2.

0

Подстрока string1 идентична подстроке string2.

> 0

Подстрока string1 больше, чем подстрока string2.

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

Заметки

Каждая из этих функций сравнивает, по крайней мере, первые count байтов в string1 и string2 и возвращает значение, указывающее отношение между результирующее подстроками string1 и string2. Если конечный байт в подстроке string1 или string2 является ведущим байтом, он не учитывается при сравнении; эти функции сравнивают только полные символы в подстроках. _mbsnbicoll — нечувствительная к регистру версия _mbsnbcoll. Подобно _mbsnbcmp и _mbsnbicmp, _mbsnbcoll и _mbsnbicoll сравнивают две строки многобайтовой кодировки в соответствии с лексикографическим порядком, определенным текущей многобайтовой кодовой страницей.

Для некоторых кодовых страниц и соответствующих наборов символов порядок символов в наборе может отличаться от лексикографического порядка символов. Языковой стандарт "C" не входит в их число: порядок символов в кодировке ASCII совпадает с лексикографическим порядком символов. Однако, в некоторых европейских языковых стандартах, например, символ «a» (значение 0x61) предшествует символу «ä» (значение 0xE4) в кодировке, но «ä» предшествует символу «a» лексикографически. Чтобы выполнить лексикографическое сравнение строк байтов в таком случае, используйте _mbsnbcoll вместо _mbsnbcmp; для проверки только на равенство строк используйте _mbsnbcmp.

Поскольку функции coll сопоставляют строки для лексикографического сравнения, тогда как функции cmp просто проверяются на равенство строки, функции coll гораздо медленнее, чем соответствующие версии cmp. Таким образом, функции coll следует использовать только в том случае, когда есть различие между порядком символов в наборе и лексикографическим порядке символов в текущей кодовой странице и данное различие представляет интерес во время сравнения.

Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

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

Подпрограмма Tchar.h

_UNICODE и _MBCS не определены

_MBCS определено

_UNICODE определено

_tcsncoll

_strncoll

_mbsnbcoll

_wcsncoll

_tcsncoll_l

_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l

_mbsnbcoll_l

_wcsncoll_l

_tcsnicoll

_strnicoll

_mbsnbicoll

_wcsnicoll

_tcsnicoll_l

_strnicoll_l

_mbsnbicoll_l

_wcsnicoll_l

Требования

Подпрограмма

Обязательный заголовок

_mbsnbcoll

<mbstring.h>

_mbsnbcoll_l

<mbstring.h>

_mbsnbicoll

<mbstring.h>

_mbsnbicoll_l

<mbstring.h>

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

См. также

Ссылки

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

_mbsnbcat, _mbsnbcat_l

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

Функции strcoll

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l