Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сравнивает 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