c16rtomb
, c32rtomb
UTF-16 또는 UTF-32 와이드 문자를 UTF-8 멀티바이트 문자로 변환합니다.
구문
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
매개 변수
mbchar
변환된 UTF-8 멀티바이트 문자를 저장할 배열에 대한 포인터입니다.
wchar
변환할 와이드 문자입니다.
state
mbstate_t
개체에 대한 포인터입니다.
반환 값
배열 개체 mbchar
에 저장된 바이트 수(이동 시퀀스 포함)입니다. 유효한 와이드 문자가 아닌 경우 wchar
값(size_t
)(-1)이 반환되고, errno
로 설정 EILSEQ
되고, 값 state
이 지정되지 않습니다.
설명
이 함수는 c16rtomb
UTF-16 LE 문자를 wchar
해당하는 UTF-8 멀티바이트 좁은 문자 시퀀스로 변환합니다. null 포인터가 아닌 경우 mbchar
함수는 변환된 시퀀스를 가리키는 배열 개체 mbchar
에 저장합니다. 최대 MB_CUR_MAX
바이트까지 mbchar
에 저장되며, state
는 결과적인 멀티바이트 이동 상태로 설정됩니다.
null 와이드 문자인 경우 wchar
초기 시프트 상태를 복원하는 데 필요한 시퀀스가 저장되고 필요한 경우 null 문자가 뒤에 저장됩니다. state
는 초기 변환 상태로 설정됩니다. c32rtomb
함수는 동일하지만, UTF-32 문자를 변환합니다.
mbchar
이 null 포인터인 경우 동작은 내부 버퍼로 mbchar
를 대체하고, 와이드 null 문자로 wchar
를 대체하는 함수에 대한 호출과 동일합니다.
state
변환 상태 개체를 통해 이 함수와, 멀티바이트 출력 문자의 이동 상태를 유지 관리하는 다시 시작 가능한 다른 함수에 대해 후속 호출을 수행할 수 있습니다. 다시 시작 가능 함수와 다시 시작할 수 없는 함수를 함께 사용하면 결과가 정의되지 않습니다.
UTF-16자를 UTF-8이 아닌 멀티바이트 문자로 변환하려면 , _wcstombs_l
wcstombs_s 또는 _wcstombs_s_l 함수를 사용합니다.wcstombs
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
참고 항목
데이터 변환
Locale
멀티바이트 문자 시퀀스 해석
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s