wctomb
, _wctomb_l
Konvertiert ein Breitzeichen in das entsprechende Multibytezeichen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter wctomb_s
, _wctomb_s_l
.
Syntax
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Parameter
mbchar
Die Adresse eines Multibytezeichens.
wchar
Ein Breitzeichen.
Rückgabewert
Wenn wctomb
das Breitzeichen in ein Multibytezeichen konvertiert, wird die Anzahl von Bytes (die nie größer als MB_CUR_MAX
ist) im Breitzeichen zurückgegeben. Wenn wchar
das Breitzeichen NULL (L'\0') ist, gibt wctomb
1 zurück. Wenn der Zielzeiger mbchar
lautet NULL
, wctomb
wird 0 zurückgegeben. Wenn die Konvertierung im aktuellen Gebietsschema nicht möglich ist, wctomb
wird -1 zurückgegeben und errno
auf EILSEQ
.
Hinweise
Die wctomb
-Funktion konvertiert das wchar
-Argument in das entsprechende Multibytezeichen und speichert das Ergebnis in mbchar
. Sie können die Funktion von einem beliebigen Punkt in einem beliebigen Programm aufrufen. wctomb
verwendet das aktuelle Gebietsschema für jedes Verhalten, das vom Gebietsschema abhängig ist; _wctomb_l
ist mit wctomb
identisch, nur dass sie stattdessen das übergebene Gebietsschema verwendet. Weitere Informationen finden Sie unter Locale.
wctomb
überprüft die eigenen Parameter. Wenn mbchar
den Wert NULL
annimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, wird errno
auf EINVAL
gesetzt, und die Funktion gibt – 1 zurück.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
wctomb |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Dieses Programm stellt das Verhalten der Funktion „wctomb“ dar.
// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf( "Convert a wide character:\n" );
i = wctomb( pmb, wc ); // C4996
// Note: wctomb is deprecated; consider using wctomb_s
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
Characters converted: 1
Multibyte character: a
Siehe auch
Datenkonvertierung
Gebietsschema
_mbclen
, mblen
_mblen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
wcstombs
, _wcstombs_l
WideCharToMultiByte