Namespaces
Variants

std:: wcscmp

From cppreference.net
ヘッダーで定義 <cwchar>
int wcscmp ( const wchar_t * lhs, const wchar_t * rhs ) ;

2つのヌル終端ワイド文字列を辞書順に比較します。

結果の符号は、比較対象の文字列において最初に異なるワイド文字の値の差の符号と一致します。

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

出力:

А Б Г Л М С Х Ч

関連項目

2つのワイド文字列から指定された数の文字を比較する
(関数)
2つの配列から指定された数のワイド文字を比較する
(関数)
2つの文字列を比較する
(関数)
現在のロケールに従って2つのワイド文字列を比較する
(関数)