mbtowc
, _mbtowc_l
Konvertieren von Multibytezeichen in entsprechendes Breitzeichen.
Syntax
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 Sequenz von Bytes (ein Multibytezeichen).
count
Anzahl zu überprüfender Bytes.
locale
Das zu verwendende Gebietsschema.
Rückgabewert
Andernfalls mbchar
mbchar
NULL
gibt die Länge des Multibyte-Zeichens mbtowc
in Bytes des Multibyte-Zeichens zurück. Wenn mbchar
es NULL
sich um ein Breitzeichen-NULL-Zeichen (L'\0') handelt oder zeigt, gibt die Funktion 0 zurück. Wenn das Objekt, auf das verweist, mbchar
kein gültiges Multibytezeichen innerhalb der ersten count
Zeichen bildet, wird -1 zurückgegeben.
Hinweise
Die mbtowc
Funktion konvertiert count
oder weniger Bytes, die mbchar
auf ein entsprechendes breites Zeichen verweisen, wenn mbchar
nicht NULL
. mbtowc
speichert das resultierende breite Zeichen bei Wchar, wenn wchar
nicht NULL
. mbtowc
untersucht nicht mehr als MB_CUR_MAX
Bytes. mbtowc
verwendet das aktuelle Gebietsschema für jedes Verhalten, das vom Gebietsschema abhängig ist; _mbtowc_l
ist identisch, nur dass sie stattdessen das übergebene Gebietsschema verwendet. Weitere Informationen finden Sie unter Locale.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
mbtowc |
<stdlib.h> |
_mbtowc_l |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Bibliotheken
Alle Versionen der 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 );
}
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
Siehe auch
Datenkonvertierung
MultiByteToWideChar
Gebietsschema
Interpretation von Multibyte-Zeichensequenzen
_mbclen
, mblen
, _mblen_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für