Namespaces
Variants

std:: wcsncmp

From cppreference.net
Определено в заголовочном файле <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 [안녕히 가십시오]

Смотрите также

сравнивает определённое количество символов из двух строк
(функция)
сравнивает две широкие строки
(функция)
сравнивает определённое количество широких символов из двух массивов
(функция)
сравнивает две широкие строки в соответствии с текущей локалью
(функция)