Freigeben über


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 NULLannimmt, 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