wctomb
, _wctomb_l
Converte un carattere wide nel carattere multibyte corrispondente. Sono disponibili versioni più sicure di queste funzioni; vedere wctomb_s
, _wctomb_s_l
.
Sintassi
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Parametri
mbchar
Indirizzo di un carattere multibyte.
wchar
Carattere wide.
Valore restituito
Se wctomb
converte il carattere wide in un carattere multibyte, restituisce il numero di byte (che non è mai maggiore di MB_CUR_MAX
) nel caratteri wide. Se wchar
è il carattere Null wide (L'\0'), wctomb
restituisce 1. Se il puntatore mbchar
di destinazione è NULL
, wctomb
restituisce 0. Se la conversione non è possibile nelle impostazioni locali correnti, wctomb
restituisce -1 e errno
è impostata su EILSEQ
.
Osservazioni:
La funzione wctomb
converte l'argomento wchar
nel carattere multibyte corrispondente e archivia il risultato in mbchar
. È possibile chiamare la funzione da qualsiasi punto in un qualsiasi programma. wctomb
usa le impostazioni locali correnti per qualsiasi comportamento dipendente dalle impostazioni locali. La funzione _wctomb_l
è identica a wctomb
, ma usa le impostazioni locali passate. Per altre informazioni, vedere Locale.
wctomb
convalida i propri parametri. Se mbchar
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
viene impostato su EINVAL
e la funzione restituisce -1.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
wctomb |
<stdlib.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
Questo programma illustra il comportamento della funzione wctomb.
// 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
Vedi anche
Conversione dati
impostazioni locali
_mbclen
, mblen
, _mblen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
wcstombs
, _wcstombs_l
WideCharToMultiByte