strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l

 

Опубликовано: Июль 2016

Самая актуальная документация по версии-кандидату Visual Studio 2017: Документация по версии-кандидату Visual Studio 2017.

Сравнивает строки, используя текущий языковой стандарт или указанную LC_COLLATE категорию состояния преобразования.

System_CAPS_ICON_important.jpg Важно

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

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
< 0string1 меньше чем string2.
0string1 идентична string2.
> 0string1 больше чем string2.

Каждая из этих функций возвращает _NLSCMPERROR при ошибке. Для использования _NLSCMPERROR включите либо STRING.H, либо MBSTRING.H. wcscoll может завершиться неудачей, если либо string1, либо string2 имеют значение NULL или содержат коды расширенных символов вне домена сортированной последовательности. При возникновении ошибки wcscoll может установить errno в EINVAL. Для проверки ошибок при вызове wcscoll установите errno в 0 и проверьте errno после вызова wcscoll.

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

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

Сравнение двух строк — операция, зависимая от языкового стандарта, поскольку каждый языковой стандарт имеет различные правила упорядочивания символов. Версии этих функций без суффикса _l используют языковой стандарт текущего потока для этого поведения, зависящего от языкового стандарта; версии с суффиксом _l совпадают с соответствующей функции без суффикса, за исключением того, что они используют языковой стандарт, передаваемый в качестве параметра вместо текущего языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.

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

Подпрограмма TCHAR.H_UNICODE & _MBCS не определены_MBCS определено_UNICODE определено
_tcscollstrcoll_mbscollwcscoll
ПодпрограммаОбязательный заголовок
strcoll<string.h>
wcscoll<wchar.h>, <string.h>
_mbscoll, _mbscoll_l<mbstring.h>
_strcoll_l<string.h>
_wcscoll_l<wchar.h>, <string.h>

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

System::String::Compare

Языковой стандарт
Управление строками
Функции 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

Показ: