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


_stricoll, , _wcsicoll_stricoll_l_mbsicoll_wcsicoll_l,_mbsicoll_l

Сравнивает строки на основе данных языкового стандарта.

Внимание

Функции _mbsicoll и _mbsicoll_l не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

int _stricoll(
   const char *string1,
   const char *string2
);
int _wcsicoll(
   const wchar_t *string1,
   const wchar_t *string2
);
int _mbsicoll(
   const unsigned char *string1,
   const unsigned char *string2
);
int _stricoll_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int _wcsicoll_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbsicoll_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. Чтобы использовать _NLSCMPERROR, включите <string.h> или <mbstring.h>. _wcsicoll может завершиться ошибкой, если string1 или string2 содержит коды расширенных символов, не входящие в последовательность сортировки. При возникновении ошибки _wcsicoll может присвоить параметру errno значение EINVAL. Чтобы убедиться, не возникает ли ошибка при вызове функции _wcsicoll, присвойте параметру errno значение 0 и проверьте errno после вызова функции _wcsicoll.

Замечания

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

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

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

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tcsicoll _stricoll _mbsicoll _wcsicoll

Требования

Маршрут Обязательный заголовок
_stricoll, _stricoll_l <string.h>
_wcsicoll, _wcsicoll_l <wchar.h>, <string.h>
_mbsicoll, _mbsicoll_l <mbstring.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