Funkcia wcstombs () v C ++ prevádza reťazec so širokými znakmi na ekvivalentnú viacbytovú sekvenciu.
Funkcia wcstombs () je definovaná v hlavičkovom súbore.
prototyp wcstombs ()
size_t wcstombs (char * dest, const wchar_t * src, size_t max);
Funkcia wcstombs () má tri argumenty a vráti celočíselnú hodnotu.
Táto funkcia prevádza reťazec širokých znakov, ktorého prvý prvok smeruje src, na jeho viacbajtové zastúpenie.
Výsledok sa uloží na miesto v pamäti, na ktoré ukazuje cieľ. Parameter max predstavuje maximálny počet širokých znakov, ktoré sa majú previesť.
Mechanizmus premeny je rovnaký ako v prípade wctomb, ibaže stav premeny wctomb nie je ovplyvnený. Konverzia sa zastaví, ak:
- Narazí sa na nulový znak, ktorý sa potom prevedie a uloží.
- Našlo sa wchar_t, ktoré nezodpovedá platnému znaku v aktuálnom miestnom prostredí C.
- bol prevedený maximálny počet širokých znakov.
Parametre wcstombs ()
- cieľ: Ukazovateľ na výsledné viacbajtové pole znakov.
- src: Ukazovateľ na prvý prvok širokého znaku, ktorý sa prevedie na viacbajtový znak.
- max: Maximálny počet širokých znakov, ktoré sa majú previesť.
wcstombs () Vrátená hodnota
- Ak je konverzia úspešná, funkcia wcstombs () vráti počet viacbajtových znakov s výnimkou 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 wcstombs ()?
#include #include using namespace std; int main() ( wchar_t src() = L"Welcome To Programiz.com"; char dest(50); int num; num = wcstombs(dest, src, 50); cout << "Number of wide character converted = " << num << endl; cout << "Multibyte Character String = " << dest << endl; return 0; )
Po spustení programu bude možný výstup:
Počet prevedených širokých znakov = 24 Viabajtový znakový reťazec = Vitajte na stránke Programiz.com