Condividi tramite


wctomb, _wctomb_l

Converte un carattere wide nel corrispondente carattere multibyte. Sono disponibili versioni più sicure di queste funzioni. Vedere wctomb_s, _wctomb_s_l.

int wctomb(
   char *mbchar,
   wchar_t wchar 
);
int _wctomb_l(
   char *mbchar,
   wchar_t wchar,
   _locale_t locale
);

Parametri

  • mbchar
    L'indirizzo di un carattere multibyte.

  • wchar
    Un 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 carattere wide. Se wchar è il carattere null a caratteri estesi (L'\ 0 "), wctomb restituisce 1. Se il puntatore di destinazione mbchar è NULL, wctomb restituisce 0. Se la conversione non è possibile nelle impostazioni locali correnti, wctomb restituisce 1 e errno viene impostato su EILSEQ.

Note

La funzione wctomb converte il suo argomento wchar nel carattere multibyte corrispondente e memorizza i risultati in mbchar. È possibile chiamare la funzione da qualsiasi punto di qualsiasi programma. wctomb utilizza le impostazioni locali correnti per i comportamenti dipendenti dalle impostazioni locali; _wctomb_l è identica a wctomb, ad eccezione del fatto che utilizza il parametro delle impostazioni locali passato. Per ulteriori informazioni, vedere Impostazioni locali.

wctomb convalida i suoi parametri. Se mbchar è NULL, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno viene impostato su EINVAL e la funzione restituisce -1.

Requisiti

Routine

Intestazione obbligatoria

wctomb

<stdlib.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Esempio

Questo programma mostra 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 );
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Conversione dei dati

Impostazioni locali

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

WideCharToMultiByte