C ++ wcstombs () - standardní knihovna C ++

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

Zajímavé články...