Namespaces
Variants

std:: wcscmp

From cppreference.net
Определено в заголовочном файле <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 <locale>
#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[0] << ' ';
    std::wcout << '\n';
}

Вывод:

А Б Г Л М С Х Ч

Смотрите также

сравнивает определённое количество символов из двух широких строк
(функция)
сравнивает определённое количество широких символов из двух массивов
(функция)
сравнивает две строки
(функция)
сравнивает две широкие строки в соответствии с текущей локалью
(функция)