std::wcsncmp
Определено в заголовке <cwchar> | ||
|---|---|---|
int wcsncmp( const wchar_t* lhs, const wchar_t* rhs, std::size_t count ); |
Сравнивает не более count символов двух строковых литералов с нулевым завершением. Сравнение выполняется лексикографически.
Знак результата — знак разницы между значениями первой пары символов, которые отличаются в сравниваемых строках.
Поведение не определено, если lhs или rhs не являются указателями на строки с нулевым завершением.
Параметры
| lhs, rhs | - | указатели на сравниваемые строки с нулевым завершением |
| count | - | максимальное количество сравниваемых символов |
Возвращаемое значение
Отрицательное значение, если lhs предшествует rhs в лексикографическом порядке.
Ноль, если lhs и rhs равны в лексикографическом порядке.
Положительное значение, если lhs следует за rhs в лексикографическом порядке.
Пример
#include <clocale>
#include <cwchar>
#include <iostream>
#include <locale>
void demo(const wchar_t* lhs, const wchar_t* rhs, int sz)
{
int rc = std::wcsncmp(lhs, rhs, sz);
if (rc == 0)
std::wcout << "First " << sz << " characters of ["
<< lhs << "] equal [" << rhs << "]\n";
else if (rc < 0)
std::wcout << "First " << sz << " characters of ["
<< lhs << "] precede [" << rhs << "]\n";
else if (rc > 0)
std::wcout << "First " << sz << " characters of ["
<< lhs << "] follow [" << rhs << "]\n";
}
int main()
{
const wchar_t str1[] = L"안녕하세요";
const wchar_t str2[] = L"안녕히 가십시오";
std::setlocale(LC_ALL, "en_US.utf8");
std::wcout.imbue(std::locale("en_US.utf8"));
demo(str1, str2, 5);
demo(str2, str1, 8);
demo(str1, str2, 2);
}Вывод:
First 5 characters of [안녕하세요] precede [안녕히 가십시오] First 8 characters of [안녕히 가십시오] follow [안녕하세요] First 2 characters of [안녕하세요] equal [안녕히 가십시오]
См. также
| сравнивает определенное количество символов из двух строк (функция) |
|
| сравнивает две широкие строки (функция) |
|
| сравнивает определенное количество широких символов из двух массивов (функция) |
|
| сравнивает две широкие строки в соответствии с текущим языковым стандартом (функция) |
|
C документация для wcsncmp |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/wide/wcsncmp