C ++ mbstowcs () - Libreria standard C ++

La funzione mbstowcs () in C ++ converte una stringa di caratteri multibyte in una sequenza di caratteri wide equivalente.

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

prototipo mbstowcs ()

 size_t mbstowcs (wchar_t * dest, const char * src, size_t max);

La funzione mbstowcs () accetta tre argomenti e restituisce un valore intero.

Questa funzione converte la stringa di caratteri multibyte il cui primo elemento è puntato da src nella sua rappresentazione in caratteri ampi (valore di tipo wchar_t).

Il risultato viene memorizzato nella posizione di memoria indicata da dest. Il parametro max rappresenta il numero massimo di caratteri multibyte da convertire.

Il meccanismo di conversione è lo stesso di mbtowc (), tranne per il fatto che lo stato di conversione mbtowc non viene influenzato. La conversione si interrompe se:

  • Viene rilevato un carattere nullo, che viene quindi convertito e memorizzato.
  • È stato rilevato un carattere multibyte non valido.
  • è stato convertito il numero massimo di caratteri multibyte.

Parametri mbstowcs ()

  • dest: puntatore all'ampio array di caratteri risultante.
  • src: puntatore al primo elemento del carattere multibyte che viene convertito in carattere largo.
  • max: numero massimo di caratteri multibyte da convertire.

mbstowcs () Restituisce il valore

  • Se la conversione ha esito positivo, mbstowcs () restituisce il numero di caratteri larghi escluso il carattere di terminazione (ad esempio " 0") che viene scritto nell'array di destinazione.
  • Se si verifica un errore durante la conversione, restituisce -1.

Esempio: come funziona la funzione mbstowcs ()?

 #include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )

Quando esegui il programma, un possibile output sarà:

 Numero di caratteri larghi convertiti = 1 Stringa di caratteri larghi = ─

Articoli interessanti...