std::wcscmp
Материал из cppreference.com
Определено в заголовочном файле <cwchar>
|
||
int wcscmp( const wchar_t* lhs, const wchar_t* rhs ); |
||
Лексикографически сравнивает две широкие строки с нулевым завершающим символом.
Знаком результата является знак разности значений первой пары широких символов, различающихся в сравниваемых строках.
Поведение не определено, если lhs или rhs не являются указателями на широкие строки с нулевым завершающим символом.
Содержание |
[править] Параметры
lhs, rhs | — | указатели на широкие строки с нулевым завершающим символом для сравнения |
[править] Возвращаемое значение
Отрицательное значение, если lhs находится перед rhs в лексикографическом порядке.
Ноль, если lhs и rhs равны.
Положительное значение, если lhs находится после rhs в лексикографическом порядке.
[править] Примечание
Эта функция не зависит от локали, в отличие от std::wcscoll, и порядок может не иметь смысла, когда символы из разных блоков Юникода используются вместе или когда порядок кодовых единиц не соответствует порядку сортировки.
[править] Пример
Запустить этот код
#include <algorithm> #include <cwchar> #include <iostream> #include <vector> int main() { std::vector<const wchar_t*> leaders{L"Ленин", L"Сталин", L"Маленков", L"Хрущёв", L"Брежнев", L"Андропов", L"Черненко", L"Горбачёв"}; std::ranges::sort(leaders, [](auto leaderLHS, auto leaderRHS) { return std::wcscmp(leaderLHS, leaderRHS) < 0; }); std::setlocale(LC_ALL, "en_US.utf8"); std::wcout.imbue(std::locale("en_US.utf8")); for (auto leader : leaders) std::wcout << leader << '\n'; }
Возможный вывод:
Андропов Брежнев Горбачёв Ленин Маленков Сталин Хрущёв Черненко
[править] Смотрите также
сравнивает определённое количество символов из двух широких строк (функция) | |
сравнивает определённое количество широких символов из двух массивов (функция) | |
сравнивает две строки (функция) | |
сравнивает две широких строки в соответствии с текущей локалью (функция) | |
Документация C по wcscmp
|