strcoll
, , wcscoll
_strcoll_l
_mbscoll
_wcscoll_l
,_mbscoll_l
Сравнивает строки с помощью текущего языкового стандарта или указанной LC_COLLATE
категории состояния преобразования.
Внимание
Функции _mbscoll
и _mbscoll_l
не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
int strcoll(
const char *string1,
const char *string2
);
int wcscoll(
const wchar_t *string1,
const wchar_t *string2
);
int _mbscoll(
const unsigned char *string1,
const unsigned char *string2
);
int _strcoll_l(
const char *string1,
const char *string2,
_locale_t locale
);
int wcscoll_l(
const wchar_t *string1,
const wchar_t *string2,
_locale_t locale
);
int _mbscoll_l(
const unsigned char *string1,
const unsigned char *string2,
_locale_t locale
);
Параметры
string1
, string2
Строки с завершающим нулем для сравнения.
locale
Используемый языковой стандарт.
Возвращаемое значение
Каждая из этих функций возвращает значение, указывающее отношение к string1
string2
, как показано ниже.
Возвращаемое значение | string1 Отношение кstring2 |
---|---|
< 0 | string1 меньше string2 |
0 | string1 идентично string2 |
> 0 | string1 больше string2 |
Каждая из этих функций возвращает _NLSCMPERROR
в случае ошибки. Чтобы использовать функцию _NLSCMPERROR
, включите STRING.H или MBSTRING.H. wcscoll
может завершиться ошибкой, если коды string1
string2
с широкими символами находятся NULL
вне домена последовательности сортировки. При возникновении ошибки wcscoll
может присвоить параметру errno
значение EINVAL
. Чтобы убедиться, не возникает ли ошибка при вызове функции wcscoll
, присвойте параметру errno
значение 0 и проверьте errno
после вызова функции wcscoll
.
Замечания
Каждая из этих функций сравнивает с учетом регистра строки string1
и string2
в соответствии с используемой в настоящее время кодовой страницей. Эти функции следует использовать только в том случае, если в текущей кодовой странице имеется разница между порядком набора символов и порядком лексографических символов, и это различие является интересом для сравнения строк.
Все эти функции проверяют свои параметры. Если указатель string1
string2
имеет значение NULL или INT_MAX
count
больше, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции возвращают _NLSCMPERROR
и устанавливают для errno
значение EINVAL
.
Сравнение двух строк — это операция, зависящая от языкового стандарта, так как каждый языковой стандарт теперь имеет разные правила для сортировки символов. Версии этих функций без суффикса _l
используют текущий языковой стандарт потока для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l
идентичны соответствующей функции без суффикса, однако они используют переданный языковой стандарт в качестве параметра вместо текущего языкового стандарта. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcscoll |
strcoll |
_mbscoll |
wcscoll |
Требования
Маршрут | Обязательный заголовок |
---|---|
strcoll |
<string.h> |
wcscoll |
<wchar.h>, <string.h> |
_mbscoll , _mbscoll_l |
<mbstring.h> |
_strcoll_l |
<string.h> |
_wcscoll_l |
<wchar.h>, <string.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Локаль
Обработка строк
Функции strcoll
localeconv
_mbsnbcoll
, , _mbsnbcoll_l
_mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, , wcscmp
_mbscmp
_stricmp
, , _wcsicmp
_stricmp_l
_mbsicmp
_wcsicmp_l
,_mbsicmp_l
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
_strnicmp
, , _wcsnicmp
_strnicmp_l
_mbsnicmp
_wcsnicmp_l
,_mbsnicmp_l
strxfrm
, , wcsxfrm
_strxfrm_l
_wcsxfrm_l