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.