std:: wcscoll
|
Определено в заголовке
<cwchar>
|
||
|
int
wcscoll
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs
)
;
|
||
Сравнивает две широкие строки с нулевым завершением в соответствии с локалью, последний раз установленной с помощью std::setlocale , как определено категорией LC_COLLATE .
Содержание |
Параметры
| lhs, rhs | - | указатели на сравниваемые широкие строки с нулевым завершением |
Возвращаемое значение
Отрицательное значение, если lhs меньше (предшествует) rhs .
0 если lhs равен rhs .
Положительное значение, если lhs больше (следует после) rhs .
Примечания
Порядок сортировки — это словарный порядок: позиция буквы в национальном алфавите (её класс эквивалентности ) имеет более высокий приоритет, чем её регистр или вариант. В пределах класса эквивалентности строчные символы сортируются перед их прописными эквивалентами, а локально-зависимый порядок может применяться к символам с диакритическими знаками. В некоторых локализациях группы символов сравниваются как единые элементы сортировки . Например, "ch" в чешском языке следует после "h" и предшествует "i" , а "dzs" в венгерском языке следует после "dz" и предшествует "g" .
Пример
#include <clocale> #include <iostream> void try_compare(const wchar_t* p1, const wchar_t* p2) { if (std::wcscoll(p1, p2) < 0) std::wcout << p1 << " before " << p2 << '\n'; else std::wcout << p2 << " before " << p1 << '\n'; } int main() { std::setlocale(LC_ALL, "en_US.utf8"); std::wcout << "In the American locale: "; try_compare(L"hrnec", L"chrt"); std::setlocale(LC_COLLATE, "cs_CZ.utf8"); std::wcout << "In the Czech locale: "; try_compare(L"hrnec", L"chrt"); std::setlocale(LC_COLLATE, "en_US.utf8"); std::wcout << "In the American locale: "; try_compare(L"år", L"ängel"); std::setlocale(LC_COLLATE, "sv_SE.utf8"); std::wcout << "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
Смотрите также
|
сравнивает две строки в соответствии с текущей локалью
(функция) |
|
|
[virtual]
|
сравнивает две строки, используя правила сортировки этого аспекта
(виртуальная защищенная функция-член
std::collate<CharT>
)
|
преобразует широкую строку так, чтобы
wcscmp
давал тот же результат, что и
wcscoll
(функция) |
|
|
Документация C
для
wcscoll
|
|