C ++ wctomb () - Libreria standard C ++

La funzione wctomb () in C ++ converte un carattere wide in un carattere multibyte.

La funzione wctomb () è definita nel file di intestazione.

prototipo di wctomb ()

 int wctomb (char * pmb, wchar_t wc);

La funzione wctomb () accetta due argomenti e restituisce un valore intero. Questa funzione converte il carattere wide rappresentato da wc nel suo equivalente multibyte e viene memorizzato nella posizione di memoria indicata da pmb. Il numero massimo di caratteri che è possibile memorizzare è MB_CUR_MAX .

Se wc è il carattere nullo, il byte nullo viene scritto in pmb.

Se pmb è un puntatore nullo, una chiamata a wctomb () reimposta lo stato di conversione globale e determina se vengono usate le sequenze di spostamento.

Parametri wctomb ()

  • pmb: puntatore al carattere multibyte risultante
  • wc: carattere ampio che viene convertito in carattere multibyte

wctomb () Restituisce il valore

Se pmb non è un puntatore nullo, wctomb () restituisce:

  • il numero di byte contenuti nella rappresentazione multibyte di wc.
  • -1 se wc non è un carattere valido.

Se pmb è un puntatore nullo, ripristina il suo stato di conversione interno per rappresentare lo stato di spostamento iniziale e restituisce:

  • 0 se la codifica multibyte corrente non è dipendente dallo stato (non utilizza sequenze di scorrimento)
  • un valore diverso da zero se la codifica multibyte corrente è dipendente dallo stato (utilizza sequenze di spostamento).

Esempio: come funziona la funzione wctomb ()?

 #include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )

Quando esegui il programma, un possibile output sarà:

 Quando pmb non è nullo Valore restituito = 1 Carattere multibyte: x↨R Quando pmb è nullo Valore restituito = 0 Carattere multibyte:

Articoli interessanti...