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


_stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, _mbsicoll_l

Сравнивает строки с помощью информации, характерной для языкового стандарта.

Важно!

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

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 идентичны за исключением того, что они используют переданный параметр языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

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

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

Подпрограмма 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>

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

Эквивалент в .NET Framework

System::String::Compare

См. также

Ссылки

Языковой стандарт

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

Функции strcoll

localeconv

_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

setlocale, _wsetlocale

strcmp, wcscmp, _mbscmp

_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l