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: