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';
}
Вывод:
А Б Г Л М С Х Ч
См. также
| сравнивает заданное количество символов из двух широких строк (функция) |
|
| сравнивает заданное количество широких символов из двух массивов (функция) |
|
| сравнивает две строки (функция) |
|
| сравнивает две широкие строки в соответствии с текущей локалью (функция) |
|
Документация по C для wcscmp |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/wide/wcscmp