wcsncmp
|
헤더 파일에 정의됨
<wchar.h>
|
||
|
int
wcsncmp
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs,
size_t
count
)
;
|
(C95부터) | |
최대
count
개의 와이드 문자를 두 개의 널 종료 와이드 문자열에서 비교합니다. 비교는 사전식 순서로 수행됩니다.
결과의 부호는 비교 중인 문자열에서 서로 다른 첫 번째 와이드 문자 쌍의 값 차이의 부호입니다.
lhs
또는
rhs
가 null-terminated 문자열을 가리키는 포인터가 아닌 경우, 동작은 정의되지 않습니다.
목차 |
매개변수
| lhs, rhs | - | 비교할 널 종료 와이드 문자열에 대한 포인터 |
| count | - | 비교할 최대 문자 수 |
반환값
음수 값은
lhs
가
rhs
보다 사전식 순서에서 먼저 나타나는 경우입니다.
lhs
와
rhs
가 동일하게 비교되면 0입니다.
lhs
가
rhs
보다 사전식 순서에서 뒤에 나타나면 양의 값.
참고 사항
이 함수는 wcscoll 및 wcsxfrm 과 달리 로캘에 민감하지 않습니다.
예제
#include <stdio.h> #include <wchar.h> #include <locale.h> void demo(const wchar_t *lhs, const wchar_t *rhs, int sz) { int rc = wcsncmp(lhs, rhs, sz); if(rc == 0) printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs); else if(rc < 0) printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs); else if(rc > 0) printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs); } int main(void) { const wchar_t *str1 = L"안녕하세요"; const wchar_t *str2 = L"안녕히 가십시오"; setlocale(LC_ALL, "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 [안녕히 가십시오]