Funcția mbstowcs () din C ++ convertește un șir de caractere multibyte în secvență de caractere echivalentă.
Funcția mbstowcs () este definită în fișierul antet.
mbstowcs () prototip
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Funcția mbstowcs () ia trei argumente și returnează o valoare întreagă.
Această funcție convertește șirul de caractere multibyte al cărui prim element este indicat de src în reprezentarea sa largă (valoarea de tip wchar_t).
Rezultatul este stocat la locația de memorie indicată de dest. Parametrul max reprezintă numărul maxim de caractere multibyte care urmează să fie convertite.
Mecanismul de conversie este același cu cel al mbtowc (), cu excepția faptului că starea de conversie mbtowc nu este afectată. Conversia se oprește dacă:
- Este întâlnit un caracter nul, care este apoi convertit și stocat.
- Este întâlnit un caracter multibyte nevalid.
- numărul maxim de caractere multibyte a fost convertit.
mbstowcs () Parametri
- dest: Pointer către matricea largă de caractere rezultată.
- src: Pointer către primul element al caracterului multibyte care este convertit în caracter larg.
- max: Numărul maxim de caractere multibyte care urmează să fie convertite.
mbstowcs () Valoare returnată
- Dacă conversia are succes, mbstowcs () returnează numărul de caractere largi, cu excepția caracterului de terminare (adică ' 0') care este scris în matricea de destinație.
- Dacă apare o eroare în timpul conversiei, aceasta returnează -1.
Exemplu: Cum funcționează funcția 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; )
Când rulați programul, o posibilă ieșire va fi:
Numărul de caractere largi convertite = 1 Șir larg de caractere = ─