La funzione mbtowc () in C ++ converte un carattere multibyte in un carattere wide.
La funzione mbtwoc () è definita nel file di intestazione.
prototipo mbtowc ()
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
La funzione mbtowc () accetta tre argomenti e restituisce un valore intero. Questa funzione converte il carattere multibyte puntato da pmb in un carattere ampio (valore di tipo wchar_t) e viene memorizzato nella posizione di memoria indicata da pwc.
Se pmb è un puntatore nullo, una chiamata a mbtowc () reimposta lo stato di conversione globale e determina se vengono utilizzate le sequenze di spostamento.
Parametri mbtowc ()
- pwc: puntatore al carattere largo risultante
- pmb: puntatore al carattere multibyte che viene convertito in carattere ampio
- max: dimensione massima in byte di pmb da considerare per il carattere multibyte.
mbtowc () Restituisce il valore
Se pmb non è un puntatore nullo, mbtowc () restituisce:
- il numero di byte contenuti nel carattere multibyte indicato da pmb.
- -1 se il primo byte puntato da pmb non forma un carattere multibyte valido.
- 0 se pmb punta al carattere nullo di terminazione, ad esempio " 0".
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 mbtowc ()?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Quando esegui il programma, un possibile output sarà:
Valore restituito = 1 Stringa di caratteri ampia: W @