wcsxfrm
cppreference.net에서
| 헤더 <wchar.h>
|
||
size_t wcsxfrm( wchar_t* dest, const wchar_t* src, size_t count );
|
에서 정의됨 (C95부터) (C99까지) |
|
size_t wcsxfrm( wchar_t* restrict dest, const wchar_t* restrict src, size_t count );
|
(C99부터) | |
src이 가리키는 널 종료 와이드 문자열을 구현 정의 형식으로 변환하여, 변환된 두 문자열을 wcscmp로 비교한 결과가 현재 C 로케일에서 wcscoll로 원본 문자열을 비교한 결과와 동일하도록 합니다.
변환된 문자열의 처음 count 문자가 대상에 기록되며, 종료 널 문자를 포함하고, 전체 변환된 문자열의 길이(종료 널 문자 제외)가 반환됩니다.
count이 0이면, dest은 널 포인터가 될 수 있습니다.
참고
전체 변환된 문자열을 수신할 수 있는 버퍼의 올바른 길이는 1 + wcsxfrm(NULL, src, 0)
입니다. 이 함수는 동일한 와이드 문자열 또는 와이드 문자열 집합을 사용하여 여러 로케일 종속 비교를 수행할 때 사용되며, 모든 문자열을 한 번에 변환하기 위해 wcsxfrm을 사용한 후 변환된 와이드 문자열을 wcscmp와 비교하는 것이 더 효율적이기 때문입니다.
매개변수
| dest | - | 변환된 문자열을 쓸 널 종료 와이드 문자열의 첫 번째 요소를 가리키는 포인터 |
| src | - | 변환할 널 종료 와이드 문자 문자열을 가리키는 포인터 |
| count | - | 출력할 최대 문자 수 |
반환값
변환된 와이드 문자열의 길이. 종료 널 문자는 포함되지 않습니다.
예제
이 코드 실행
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
setlocale(LC_ALL, "sv_SE.utf8");
const wchar_t* in1 = L"\u00e5r";
wchar_t out1[1 + wcsxfrm(NULL, in1, 0)];
wcsxfrm(out1, in1, sizeof out1/sizeof *out1);
const wchar_t* in2 = L"\u00e4ngel";
wchar_t out2[1 + wcsxfrm(NULL, in2, 0)];
wcsxfrm(out2, in2, sizeof out2 / sizeof *out2);
printf("In the Swedish locale: ");
if (wcscmp(out1, out2) < 0)
printf("%ls before %ls\n", in1, in2);
else
printf("%ls before %ls\n", in2, in1);
printf("In lexicographical comparison: ");
if (wcscmp(in1, in2) < 0)
printf("%ls before %ls\n", in1, in2);
else
printf("%ls before %ls\n", in2, in1);
}
출력:
In the Swedish locale: år before ängel
In lexicographical comparison: ängel before år
참조
- C23 표준 (ISO/IEC 9899:2024):
- 7.29.4.4.4 wcsxfrm 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
- 7.29.4.4.4 wcsxfrm 함수 (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
- 7.29.4.4.4 wcsxfrm 함수 (p: 434-435)
- C99 표준 (ISO/IEC 9899:1999):
- 7.24.4.4.4 wcsxfrm 함수 (p: 380-381)
같이 보기
| 현재 로케일에 따라 두 문자열을 비교합니다 (함수) | |
(C95) |
현재 로케일에 따라 두 와이드 문자열을 비교합니다 (함수) |
(C95) |
두 와이드 문자열을 비교합니다 (함수) |
| strcmp가 strcoll과 같은 결과를 내도록 문자열을 변환합니다 (함수) | |
C++ 문서 에 대한 wcsxfrm
| |