std:: wmemcmp
|
헤더 파일에 정의됨
<cwchar>
|
||
|
int
wmemcmp
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs,
std::
size_t
count
)
;
|
||
lhs 와 rhs 가 가리키는 와이드 문자 배열들의 첫 count 개의 와이드 문자를 비교합니다. 비교는 사전식 순서로 수행됩니다.
결과의 부호는 비교 중인 배열에서 서로 다른 첫 번째 와이드 문자 쌍의 값 차이의 부호입니다.
만약 count 가 0이면, 함수는 아무 작업도 수행하지 않습니다.
목차 |
매개변수
| lhs, rhs | - | 비교할 와이드 문자 배열에 대한 포인터 |
| count | - | 검사할 와이드 문자 수 |
반환값
첫 번째로 다른 와이드 문자의 값이 lhs 에서 rhs 의 해당 와이드 문자 값보다 작은 경우 음수 값: lhs 가 rhs 보다 사전식 순서에서 앞선다는 것을 의미합니다.
0 만약 count 개의 모든 와이드 문자들이 lhs 와 rhs 에서 동일하다면.
첫 번째로 다른 와이드 문자의 값이 lhs 에서 rhs 의 해당 와이드 문자 값보다 클 경우 양수 값: rhs 가 lhs 보다 사전식 순서에서 앞에 옵니다.
참고 사항
이 함수는 로캘에 민감하지 않으며 검사하는 wchar_t 객체의 값에 주의를 기울이지 않습니다: 널(null) 문자와 유효하지 않은 와이드 문자도 비교 대상에 포함됩니다.
예제
#include <clocale> #include <cwchar> #include <iostream> #include <locale> #include <string> void demo(const wchar_t* lhs, const wchar_t* rhs, std::size_t sz) { std::wcout << std::wstring(lhs, sz); int rc = std::wmemcmp(lhs, rhs, sz); if (rc == 0) std::wcout << " compares equal to "; else if (rc < 0) std::wcout << " precedes "; else if (rc > 0) std::wcout << " follows "; std::wcout << std::wstring(rhs, sz) << " in lexicographical order\n"; } int main() { std::setlocale(LC_ALL, "en_US.utf8"); std::wcout.imbue(std::locale("en_US.utf8")); wchar_t a1[] = {L'α',L'β',L'γ'}; constexpr std::size_t sz = sizeof a1 / sizeof *a1; wchar_t a2[sz] = {L'α',L'β',L'δ'}; 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
참고 항목
|
두 개의 와이드 문자열을 비교
(함수) |
|
|
두 개의 버퍼를 비교
(함수) |
|
|
두 개의 와이드 문자열에서 지정된 수의 문자를 비교
(함수) |
|
|
C documentation
for
wmemcmp
|
|