wctomb() — 와이드 문자를 멀티바이트 문자로 변환
형식
#include <stdlib.h>
int wctomb(char *string, wchar_t character);
언어 레벨
ANSI
스레드세이프
아니오
대신 wcrtomb()을 사용합니다.
로케일 감지
이 함수의 작동은 현재 로케일의 LC_CTYPE 범주로 영향을 받을 수 있습니다. 또한 작동은 LOCALETYPE(*LOCALEUCS2) 또는 LOCALETYPE(*LOCALEUTF)이 컴파일 명령에 지정된 경우 현재 로케일의 LC_UNI_CTYPE 범주로 영향을 받을 수 있습니다. 자세한 정보는 CCSID 및 로케일 이해의 내용을 참조하십시오.
와이드 문자 함수
자세한 정보는 와이드 문자의 내용을 참조하십시오.
설명
wctomb() 함수는 character의 wchar_t 값을 string으로 가리키는 멀티바이트 배열로 변환됩니다. character 값이 0이면 함수는 초기 시프트 상태로 남습니다. 최대한 wctomb() 함수는 string에서 MB_CUR_MAX자를 저장합니다.
와이드 문자 변환은 wcstombs()에서 설명한 것과 동일합니다. 유니코드 예에 대해서는 이 함수를 참조하십시오.
리턴값
wctomb() 함수는 멀티바이트 문자 바이트로 길이를 리턴합니다. character가 유효한 멀티바이트 문자가 아닌 경우 값 -1이 리턴됩니다. string이 NULL 포인터인 경우 wctomb() 함수는 시프트 종속 인코딩이 사용되면 0이 아닌 값, 그렇지 않으면 0을 리턴합니다.
변환 오류가 발생하면 errno가 ECONVERT로 설정될 수 있습니다.
예
이 예는 와이드 문자 c를 멀티바이트 문자로 변환합니다.
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#define SIZE 40
int main(void)
{
static char buffer[ SIZE ];
wchar_t wch = L'c';
int length;
length = wctomb( buffer, wch );
printf( "The number of bytes that comprise the multibyte "
"character is %i\n", length );
printf( "And the converted string is \"%s\"\n", buffer );
}
/**************** Output should be similar to: ******************
The number of bytes that comprise the multibyte character is 1
And the converted string is "c"
*/