wmemcmp
|
헤더 파일에 정의됨
<wchar.h>
|
||
|
int
wmemcmp
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs,
size_t
count
)
;
|
(C95부터) | |
lhs 와 rhs 가 가리키는 와이드 문자(또는 호환되는 정수 타입) 배열의 첫 count 개 와이드 문자를 비교합니다. 비교는 사전식 순서로 수행됩니다.
결과의 부호는 비교되는 배열에서 서로 다른 첫 번째 와이드 문자 쌍의 값 차이의 부호와 동일합니다.
만약
count
가 0이면, 함수는 아무 작업도 수행하지 않습니다.
목차 |
매개변수
| lhs, rhs | - | 비교할 와이드 문자 배열에 대한 포인터 |
| count | - | 검사할 와이드 문자 수 |
반환값
첫 번째로 다른 와이드 문자의 값이 lhs 에서 rhs 의 해당 와이드 문자 값보다 작은 경우 음수 값: lhs 가 rhs 보다 사전식 순서에서 앞섭니다.
0 만약 모든 count 개의 와이드 문자들이 lhs 와 rhs 에서 동일하다면.
첫 번째로 다른 와이드 문자의 값이 lhs 에서 rhs 의 해당 와이드 문자 값보다 클 경우 양의 값: rhs 가 lhs 보다 사전식 순서에서 앞선다는 의미입니다.
참고 사항
이 함수는 로캘을 구분하지 않으며 검사하는 wchar_t 객체 값에 주의를 기울이지 않습니다: null 및 유효하지 않은 와이드 문자도 비교 대상에 포함됩니다.
예제
#include <locale.h> #include <stdio.h> #include <wchar.h> void demo(const wchar_t* lhs, const wchar_t* rhs, size_t sz) { for (size_t n = 0; n < sz; ++n) putwchar(lhs[n]); int rc = wmemcmp(lhs, rhs, sz); if (rc == 0) wprintf(L" compares equal to "); else if(rc < 0) wprintf(L" precedes "); else if(rc > 0) wprintf(L" follows "); for (size_t n = 0; n < sz; ++n) putwchar(rhs[n]); wprintf(L" in lexicographical order\n"); } int main(void) { setlocale(LC_ALL, "en_US.utf8"); wchar_t a1[] = {L'α',L'β',L'γ'}; wchar_t a2[] = {L'α',L'β',L'δ'}; size_t sz = sizeof a1 / sizeof *a1; demo(a1, a2, sz); demo(a2, a1, sz); demo(a1, a1, sz); }
출력:
αβγ precedes αβδ in lexicographical order αβδ follows αβγ in lexicographical order αβγ compares equal to αβγ in lexicographical order
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.29.4.4.5 wmemcmp 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.29.4.4.5 wmemcmp 함수 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.29.4.4.5 wmemcmp 함수 (p: 435)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.24.4.4.5 The wmemcmp 함수 (p: 381)
참고 항목
|
(C95)
|
두 개의 와이드 문자열을 비교
(함수) |
|
두 개의 버퍼를 비교
(함수) |
|
|
(C95)
|
두 개의 와이드 문자열에서 지정된 수의 문자를 비교
(함수) |
|
C++ documentation
for
wmemcmp
|
|