다음을 통해 공유


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_lwcstombs_s 또는 _wcstombs_s_l 함수를 사용합니다.wcstombs

요구 사항

루틴에서 반환된 값 필수 헤더
c16rtomb, c32rtomb C, C++: <uchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

데이터 변환
Locale
멀티바이트 문자 시퀀스 해석
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s