Share via


mbtowc, _mbtowc_l

Konvertieren eines Mehrbytezeichen in ein entsprechendes 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
    Die Adresse einer Bytefolge (ein Mehrbytezeichen).

  • Anzahl
    Anzahl von Bytes zu überprüfen.

  • Gebietsschema
    Das zu verwendende Gebietsschema.

Rückgabewert

Wenn mbchar nicht NULL ist und das Objekt, für das mbchar auf den Formularen ein gültiges Mehrbytezeichen verweist, gibt mbtowc die Länge in Bytes) des Mehrbytezeichens zurück.Wenn mbcharNULL ist, oder das Objekt, zeigen, dass es auf ein NULL-Breitzeichen (L \ 0 ') ist, gibt die Funktion 0 zurück.Wenn das Objekt, für das mbchar Punkte kein gültiges Mehrbytezeichen in der ersten Anzahl von Zeichen darstellt, der Rückgabe 1.

Hinweise

Die mbtowc-Funktion konvertiert die Anzahl an Bytes, die kleiner oder mbcharangezeigt werden, wenn durch mbchar nicht NULList, in ein entsprechendes Breitzeichen.mbtowc speichert das resultierende Breitzeichen an wcharwchar, wenn ist nicht NULL.mbtowc überprüft nicht mehr als MB_CUR_MAX Bytes.mbtowc verwendet das aktuelle Gebietsschema für gebietsschemaabhängiges Verhalten. _mbtowc_l ist identisch, mit der Ausnahme, dass sie verwendet das Gebietsschema, das Stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Anforderungen

Routine

Erforderlicher Header

mbtowc

<stdlib.h>

_mbtowc_l

<stdlib.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Bibliotheken

Alle Versionen Cs.

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

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

Nicht zutreffend. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Datenkonvertierung

MultiByteToWideChar

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

_mbclen, mblen, _mblen_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l