wcscoll
|
Определено в заголовочном файле
<wchar.h>
|
||
|
int
wcscoll
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs
)
;
|
(начиная с C95) | |
Сравнивает две широкие строки с нулевым завершением в соответствии с порядком сортировки, определённым LC_COLLATE категорией текущей установленной локали.
Содержание |
Параметры
| lhs, rhs | - | указатели на сравниваемые широкие строки с нулевым завершением |
Возвращаемое значение
Отрицательное значение, если
lhs
меньше
(предшествует)
rhs
.
0
если
lhs
равен
rhs
.
Положительное значение, если
lhs
больше
(следует после)
rhs
.
Примечания
Порядок сортировки соответствует словарному порядку: позиция буквы в национальном алфавите (её класс эквивалентности ) имеет более высокий приоритет, чем её регистр или вариант. В пределах класса эквивалентности строчные символы сортируются перед их прописными эквивалентами, а для символов с диакритическими знаками может применяться зависящий от локали порядок. В некоторых локалях группы символов сравниваются как единые элементы сортировки . Например, "ch" в чешском языке следует после "h" и предшествует "i" , а "dzs" в венгерском языке следует после "dz" и предшествует "g" .
Пример
#include <stdio.h> #include <wchar.h> #include <locale.h> void try_compare(const wchar_t* p1, const wchar_t* p2) { if(wcscoll(p1, p2) < 0) printf("%ls before %ls\n", p1, p2); else printf("%ls before %ls\n", p2, p1); } int main(void) { setlocale(LC_ALL, "en_US.utf8"); printf("In the American locale: "); try_compare(L"hrnec", L"chrt"); setlocale(LC_COLLATE, "cs_CZ.utf8"); printf("In the Czech locale: "); try_compare(L"hrnec", L"chrt"); setlocale(LC_COLLATE, "en_US.utf8"); printf("In the American locale: "); try_compare(L"år", L"ängel"); setlocale(LC_COLLATE, "sv_SE.utf8"); printf("In the Swedish locale: "); try_compare(L"år", L"ängel"); }
Возможный вывод:
In the American locale: chrt before hrnec In the Czech locale: hrnec before chrt In the American locale: ängel before år In the Swedish locale: år before ängel
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.29.4.4.2 Функция wcscoll (стр. 433-434)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.24.4.4.2 Функция wcscoll (стр. 379-380)
Смотрите также
|
сравнивает две строки в соответствии с текущей локалью
(функция) |
|
|
(C95)
|
преобразует широкую строку так, чтобы
wcscmp
давал тот же результат, что и
wcscoll
(функция) |
|
(C95)
|
сравнивает две широкие строки
(функция) |
|
Документация C++
для
wcscoll
|
|