mbtowc, _mbtowc_lmbtowc, _mbtowc_l

멀티바이트 문자를 해당되는 와이드 문자로 변환합니다.Convert a multibyte character to a corresponding wide character.

구문Syntax

int mbtowc(
   wchar_t *wchar,
   const char *mbchar,
   size_t count
);
int _mbtowc_l(
   wchar_t *wchar,
   const char *mbchar,
   size_t count,
   _locale_t locale
);

매개 변수Parameters

wcharwchar
와이드 문자의 주소입니다 (형식 wchar_t).Address of a wide character (type wchar_t).

mbcharmbchar
바이트 시퀀스(멀티바이트 문자)의 주소입니다.Address of a sequence of bytes (a multibyte character).

countcount
검사할 바이트 수입니다.Number of bytes to check.

localelocale
사용할 로캘입니다.The locale to use.

반환 값Return Value

하는 경우 mbchar 아닙니다 NULL 경우에 개체는 mbchar forms 유효한 멀티 바이트 문자를 가리키는 mbtowc 길이 반환 합니다. 멀티 바이트 문자의 바이트입니다.If mbchar is not NULL and if the object that mbchar points to forms a valid multibyte character, mbtowc returns the length in bytes of the multibyte character. 하는 경우 mbchar 됩니다 NULL 또는 가리키는 개체가 와이드 문자 null 문자 (L'\ \0'), 함수가 0을 반환 합니다.If mbchar is NULL or the object that it points to is a wide-character null character (L'\0'), the function returns 0. 하는 경우 개체는 mbchar 가리키는 첫 번째 내에서 유효한 멀티 바이트 문자를 구성 하지 않는 개수 문자를-1을 반환 합니다.If the object that mbchar points to does not form a valid multibyte character within the first count characters, it returns -1.

설명Remarks

합니다 mbtowc 변환 함수 개수 가리키는 바이트 mbchar이면 mbchar 아닙니다 NULL를 해당 와이드 문자로 합니다.The mbtowc function converts count or fewer bytes pointed to by mbchar, if mbchar is not NULL, to a corresponding wide character. mbtowc 결과 와이드 문자를 저장 wchar 하는 경우 wchar 아닙니다 NULL합니다.mbtowc stores the resulting wide character at wchar, if wchar is not NULL. mbtowc 검사 하지 않습니다 둘 MB_CUR_MAX 바이트입니다.mbtowc does not examine more than MB_CUR_MAX bytes. mbtowc 로캘 종속 동작에 현재 로캘을 사용 _mbtowc_l 대신 전달 된 로캘을 사용 한다는 점을 제외 하 고는 동일 합니다.mbtowc uses the current locale for locale-dependent behavior; _mbtowc_l is identical except that it uses the locale passed in instead. 자세한 내용은 Locale을 참조하세요.For more information, see Locale.

요구 사항Requirements

루틴에서 반환된 값Routine 필수 헤더Required header
mbtowcmbtowc <stdlib.h><stdlib.h>
_mbtowc_l_mbtowc_l <stdlib.h><stdlib.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.For additional compatibility information, see Compatibility.

라이브러리Libraries

모든 버전의 C 런타임 라이브러리입니다.All versions of the C run-time libraries.

예제Example

// crt_mbtowc.c
// Illustrates the behavior of the mbtowc function

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int      i;
    char    *pmbc    = (char *)malloc( sizeof( char ) );
    wchar_t  wc      = L'a';
    wchar_t *pwcnull = NULL;
    wchar_t *pwc     = (wchar_t *)malloc( sizeof( wchar_t ) );
    printf( "Convert a wide character to multibyte character:\n" );
    wctomb_s( &i, pmbc, sizeof(char), wc );
    printf( "  Characters converted: %u\n", i );
    printf( "  Multibyte character: %x\n\n", *pmbc );

    printf( "Convert multibyte character back to a wide "
            "character:\n" );
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "   Bytes converted: %u\n", i );
    printf( "   Wide character: %x\n\n", *pwc );
    printf( "Attempt to convert when target is NULL\n" );
    printf( "   returns the length of the multibyte character:\n" );
    i = mbtowc( pwcnull, pmbc, MB_CUR_MAX );
    printf( "   Length of multibyte character: %u\n\n", i );

    printf( "Attempt to convert a NULL pointer to a" );
    printf( " wide character:\n" );
    pmbc = NULL;
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "   Bytes converted: %u\n", i );
}
Convert a wide character to multibyte character:
   Characters converted: 1
   Multibyte character: 61

Convert multibyte character back to a wide character:
   Bytes converted: 1
   Wide character: 61

Attempt to convert when target is NULL
   returns the length of the multibyte character:
   Length of multibyte character: 1

Attempt to convert a NULL pointer to a wide character:
   Bytes converted: 0

참고자료See also

데이터 변환Data Conversion
MultiByteToWideCharMultiByteToWideChar
로캘Locale
멀티바이트 문자 시퀀스 해석Interpretation of Multibyte-Character Sequences
_mbclen, mblen, _mblen_l_mbclen, mblen, _mblen_l
wcstombs, _wcstombs_lwcstombs, _wcstombs_l
wctomb, _wctomb_lwctomb, _wctomb_l