Share via


mbtowc, _mbtowc_l

멀티 바이트 문자를 해당 와이드 문자를 변환 합니다.

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
);

매개 변수

  • wchar
    와이드 문자 주소 (형식 wchar_t).

  • mbchar
    주소 (멀티 바이트 문자) 바이트 시퀀스입니다.

  • 개수
    바이트 수를 확인 합니다.

  • 로캘
    사용 하는 로캘.

반환 값

경우 mbchar 수 없습니다 NULL 경우 개체는 mbchar 에 유효한 멀티 바이트 문자를 가리키는 mbtowc 멀티 바이트 문자를 바이트의 길이 반환 합니다.경우 mbchar 입니다 NULL 또는 와이드 문자 null 문자 ('\ 0' L)가 가리키는 개체입니다,이 함수는 0을 반환 합니다.경우 개체는 mbchar 지점에 내 첫 번째 유효한 멀티 바이트 문자를 형성 하지 않습니다 -1 반환 문자를 합니다.

설명

mbtowc 변환 기능 나 포인터가 가리키는 바이트 수가 mbchar경우, mbchar 수 없습니다 NULL, 와이드 문자 해당 하.mbtowc저장 결과 와이드 문자를 wchar를 경우 wchar 수 없습니다 NULL.mbtowc검사 하지 않은 두 개 이상의 MB_CUR_MAX 바이트입니다. mbtowc 에 대 한 로캘 종속 동작입니다; 현재 로케일을 사용 하 여 _mbtowc_l대신 전달 된 로캘을 사용 하는 점을 제외 하 고 동일 합니다.자세한 내용은 로캘를 참조하십시오.

요구 사항

루틴

필수 헤더

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리

모든 버전의 C 런타임 라이브러리.

예제

// 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 );
}

Output

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

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

데이터 변환

MultiByteToWideChar

로캘

멀티 바이트 문자 시퀀스로 해석

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l