Funkcia mbstowcs () v C ++ prevádza viacbajtový reťazec znakov na ekvivalentnú širokú postupnosť znakov.
Funkcia mbstowcs () je definovaná v hlavičkovom súbore.
prototyp mbstowcs ()
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Funkcia mbstowcs () má tri argumenty a vráti celočíselnú hodnotu.
Táto funkcia prevádza reťazec viacbajtových znakov, ktorého prvý prvok smeruje src, na jeho široký znak (hodnota typu wchar_t).
Výsledok sa uloží na miesto v pamäti, na ktoré ukazuje cieľ. Parameter max predstavuje maximálny počet viacbajtových znakov, ktoré sa majú previesť.
Mechanizmus prevodu je rovnaký ako mechanizmus mbtowc (), až na to, že stav prevodu mbtowc nie je ovplyvnený. Konverzia sa zastaví, ak:
- Narazí sa na nulový znak, ktorý sa potom prevedie a uloží.
- Vyskytol sa neplatný viacbajtový znak.
- bol prevedený maximálny počet viacbajtových znakov.
mbstowcs () parametre
- cieľ: Ukazovateľ na výsledné široké pole znakov.
- src: Ukazovateľ na prvý prvok viacbytového znaku, ktorý sa prevedie na široký znak.
- max: Maximálny počet viacbajtových znakov, ktoré sa majú previesť.
mbstowcs () Vrátená hodnota
- Ak je konverzia úspešná, mbstowcs () vráti počet širokých znakov okrem ukončovacieho znaku (tj. „ 0“), ktorý je zapísaný do cieľového poľa.
- Ak sa počas prevodu vyskytne chyba, vráti hodnotu -1.
Príklad: Ako funguje funkcia 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; )
Po spustení programu bude možný výstup:
Počet prevedených širokých znakov = 1 Široký reťazec znakov = ─