C ++ wcrtomb () - Libreria standard C ++

La funzione wcrtomb () in C ++ converte un carattere ampio nella sua rappresentazione multibyte ristretta.

Wcrtomb () è definito nel file di intestazione.

prototipo di wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

La funzione wcrtomb () converte il carattere largo rappresentato da wc in un carattere multibyte stretto e viene memorizzato nell'indirizzo indicato da s.

  • Se s non è un puntatore nullo, la funzione wcrtomb () determina il numero massimo di byte necessari per memorizzare la rappresentazione multibyte di wc e la memorizza nella posizione di memoria indicata da s. È possibile scrivere un massimo di MB_CUR_MAX byte. Il valore di ps viene aggiornato come richiesto.
  • Se s è un puntatore nullo, la chiamata è equivalente a wcrtomb(buf, L'', ps)per qualche buf di buffer interno.
  • Se wc == L''viene memorizzato un byte nullo.

Parametri wcrtomb ()

  • s: puntatore all'array di caratteri multibyte per memorizzare il risultato.
  • wc: carattere ampio da convertire.
  • ps: puntatore allo stato di conversione utilizzato durante l'interpretazione della stringa multibyte

wcrtomb () Restituisce il valore

  • In caso di successo, la funzione wcrtomb () restituisce il numero di byte scritti nell'array di caratteri il cui primo elemento è puntato da s.
  • In caso di fallimento (cioè wc non è un carattere wide valido), restituisce -1, errno è impostato su EILSEQ e lascia * ps in uno stato non specificato.

Esempio: come funziona la funzione wcrtomb ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

Articoli interessanti...