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 가 동일하게 비교될 경우 0.

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 documentation for wcsncmp