Freigeben über


mbtowc, _mbtowc_l

Konvertieren eines Mehrbytezeichen einem entsprechenden Breitzeichen.

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

Parameter

  • wchar
    Adresse eines Breitzeichens (Typ wchar_t).

  • mbchar
    Adresse einer Bytefolge (ein Mehrbytezeichen).

  • count
    Anzahl zu überprüfender Bytes.

  • Gebietsschema
    Das zu verwendende Gebietsschema.

Rückgabewert

Wenn mbchar nicht NULL ist und wenn das Objekt, dem mbchar auf Formularen einem gültigen Mehrbytezeichen wird, gibt mbtowc der Länge in Bytes des Mehrbytezeichens zurück. Wenn mbcharNULL ist, oder das Objekt, das es verweist auf, ein NULL-Breitzeichen (L"\0"), Funktionsrückgaben 0. Wenn das Objekt, dem mbchar wird, kein gültiges Mehrbytezeichen innerhalb der ersten Anzahlzeichen bildet, gibt es - 1 zurück.

Hinweise

Die mbtowczählen-Funktion oder weniger Bytes, die von mbchar angezeigt werden, wenn mbchar nicht NULL ist, zu einem entsprechenden Breitzeichen. mbtowc speichert das resultierende Breitzeichen an wchar, wenn wchar, ist NULL nicht. mbtowc überprüft nicht mehr als MB_CUR_MAX Bytes. mbtowc verwendet das aktuelle Gebietsschema gebietsschemaabhängiges Verhalten; _mbtowc_l ist identisch, es verwendet das Gebietsschema, das ein- stattdessen übergeben wird. Weitere Informationen finden Sie unter Locale.

Anforderungen

Routine

Erforderlicher Header

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Bibliotheken

Alle Versionen C-Laufzeitbibliotheken.

Beispiel

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

Ausgabe

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-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Datenkonvertierung

MultiByteToWideChar

Locale

Interpretation von Mehrbytezeichensequenzen

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l