Aracılığıyla paylaş


mbtowc, _mbtowc_l

Çok baytlı karakter ilgili geniş karaktere dönüştürür.

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

Parametreler

  • wchar
    Geniş karakterin adresi (type wchar_t).

  • mbchar
    Adresi, bir dizi bayt (çok baytlı karakter).

  • Sayımı
    Denetlemek için bayt sayısı.

  • yerel ayar
    Kullanılacak yerel ayarı.

Dönüş Değeri

Mbchar değil null ve Eğer nesne, mbchar geçerli bir çok baytlı karakter formlara işaret mbtowc çok baytlı karakter bayt cinsinden uzunluğu döndürür.mbchar Olan null veya ilişkili olduğu geniş karakter null karakteri (l '\0') nesnesidir, işlevi 0 değerini döndürür.Nesne, mbchar noktaları için geçerli bir çok baytlı karakter ilk içinde form değil sayısı karakter verdiği –1.

Notlar

mbtowc Dönüştürür işlev sayısı ya da daha az sayıda bayt olarak sıralanmasını mbchar, mbchar değil null, ilgili geniş bir karakter.mbtowcortaya çıkan geniş karakteri saklayan wchar, , wchar değil null.mbtowcincelemek değil birden fazla MB_CUR_MAX bayt. mbtowc geçerli yerel ayarı kullanan yerel ayara bağımlı davranışı; _mbtowc_lBunun yerine geçirilen yerel kullanır dışında aynıdır.Daha fazla bilgi için bkz. Yerel ayar.

Gereksinimler

Yordamı

Gerekli başlık

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıkları

Tüm sürümleri c çalışma zamanı kitaplıkları.

Örnek

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

Çıktı

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 Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

Veri Dönüştürme

MultiByteToWideChar

Yerel ayar

Yorumunu çok baytlı karakter dizileri

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l