Spec-Zone.ru › C++

std::wcscmp

Определён в заголовочном файле <cwchar>
int wcscmp( const wchar_t* lhs, const wchar_t* rhs );

Сравнивает две широкие строки, завершающиеся нулевым символом, в лексикографическом порядке.

Знак результата совпадает со знаком разности значений первой пары различающихся широких символов в сравниваемых строках.

Поведение не определено, если lhs или rhs не являются указателями на широкие строки, завершающиеся нулевым символом.

Параметры

lhs, rhs - указатели на широкие строки, завершающиеся нулевым символом, которые нужно сравнить

Возвращаемое значение

Отрицательное значение, если lhs предшествует rhs в лексикографическом порядке.

Ноль, если lhs и rhs равны.

Положительное значение, если lhs следует за rhs в лексикографическом порядке.

Примечания

В отличие от std::wcscoll эта функция не учитывает локаль, и порядок может быть неинформативным при совместном использовании символов из разных блоков Unicode или если порядок кодовых единиц не совпадает с порядком сортировки.

Пример

#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';
}

Вывод:

А Б Г Л М С Х Ч

См. также

wcsncmp
сравнивает заданное количество символов из двух широких строк
(функция)
wmemcmp
сравнивает заданное количество широких символов из двух массивов
(функция)
strcmp
сравнивает две строки
(функция)
wcscoll
сравнивает две широкие строки в соответствии с текущей локалью
(функция)
Документация по C для wcscmp

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/wide/wcscmp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API