_mbsnbcoll
, , _mbsnbcoll_l
_mbsnbicoll
_mbsnbicoll_l
Сравнивает n
байтов двух строк многобайтовых символов, используя данные многобайтовой кодовой страницы.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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
.
Возвращаемое значение | Description |
---|---|
< 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
идентичны, однако они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcsncoll |
_strncoll |
_mbsnbcoll |
_wcsncoll |
_tcsncoll_l |
_strncoll_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> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Обработка строк
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_mbsnbicmp
, _mbsnbicmp_l
Функции strcoll
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
_strnicmp
, , _wcsnicmp
_strnicmp_l
_mbsnicmp
_wcsnicmp_l
,_mbsnicmp_l