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 = ─