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.