C ++ mbtowc () - Libreria standard C ++

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 @

Articoli interessanti...