Funkce wcstombs () v C ++ převádí řetězec širokých znaků na ekvivalentní vícebajtovou sekvenci.
Funkce wcstombs () je definována v hlavičkovém souboru.
prototyp wcstombs ()
size_t wcstombs (char * dest, const wchar_t * src, size_t max);
Funkce wcstombs () trvá tři argumenty a vrací celočíselnou hodnotu.
Tato funkce převádí řetězec širokých znaků, jehož první prvek ukazuje src na jeho vícebajtovou reprezentaci.
Výsledek se uloží na místo v paměti, na které ukazuje cíl. Parametr max představuje maximální počet širokých znaků, které mají být převedeny.
Mechanismus převodu je stejný jako u wctomb, kromě toho, že stav převodu wctomb není ovlivněn. Převod se zastaví, pokud:
- Objeví se nulový znak, který se poté převede a uloží.
- Byl nalezen wchar_t, který neodpovídá platnému znaku v aktuálním národním prostředí C.
- byl převeden maximální počet širokých znaků.
Parametry wcstombs ()
- dest: Ukazatel na výsledné vícebajtové pole znaků.
- src: Ukazatel na první prvek širokého znaku, který je převeden na vícebajtový znak.
- max: Maximální počet širokoúhlých znaků, které mají být převedeny.
wcstombs () Návratová hodnota
- Pokud je převod úspěšný, wcstombs () vrací počet vícebajtových znaků kromě ukončovacího znaku (tj. „ 0“), který je zapsán do cílového pole.
- Pokud během převodu dojde k nějaké chybě, vrátí hodnotu -1.
Příklad: Jak funguje funkce 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; )
Při spuštění programu bude možný výstup:
Počet převedených širokých znaků = 24 Vícebajtový řetězec znaků = Vítejte na Programiz.com