Пространства имён
Варианты
Действия

std::wcscoll

Материал из cppreference.com
< cpp‎ | string‎ | wide
 
 
 
 
Определено в заголовочном файле <cwchar>
int wcscoll(constwchar_t* lhs, constwchar_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(constwchar_t* p1, constwchar_t* p2){if(std::wcscoll(p1, p2)<0)std::wcout<< p1 << L" перед "<< p2 <<'\n';elsestd::wcout<< p2 << L" перед "<< p1 <<'\n';}   int main(){std::setlocale(LC_ALL, "en_US.utf8");std::wcout<< L"В американской локали: "; try_compare(L"hrnec", L"chrt");   std::setlocale(LC_COLLATE, "cs_CZ.utf8");std::wcout<< L"В чешской локали: "; try_compare(L"hrnec", L"chrt");   std::setlocale(LC_COLLATE, "en_US.utf8");std::wcout<< L"В американской локали: "; try_compare(L"år", L"ängel");   std::setlocale(LC_COLLATE, "sv_SE.utf8");std::wcout<< L"В шведской локали: "; try_compare(L"år", L"ängel");}

Вывод:

В американской локали: chrt before hrnec В чешской локали: hrnec before chrt В американской локали: ängel before år В шведской локали: år before ängel

[править]Смотрите также

сравнивает две строки в соответствии с текущей локалью
(функция)[править]
[virtual]
сравнение двух строк с использованием сортировки эту грань правилами
Оригинал:
compares two strings using this facet's collation rules
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(virtual protected std::collate функция-элемент)[править]
преобразует широкую строку так, чтобы wcscmp давала тот же результат, что и wcscoll
(функция)[править]
close