C ++ wcstombs () - štandardná knižnica C ++

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

Zaujímavé články...