std::wcscmp

Header: <cwchar>

Compares two null-terminated wide strings lexicographically.

# Declarations

int wcscmp( const wchar_t* lhs, const wchar_t* rhs );

# Parameters

# Return value

Negative value if lhs appears before rhs in lexicographical order.

# Notes

This function is not locale-sensitive, unlike std::wcscoll, and the order may not be meaningful when characters from different Unicode blocks are used together or when the order of code units does not match collation order.

# Example

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

# See also