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

Funkce mbstowcs () v C ++ převádí řetězec vícebajtových znaků na ekvivalentní sekvenci širokých znaků.

Funkce mbstowcs () je definována v hlavičkovém souboru.

prototyp mbstowcs ()

 size_t mbstowcs (wchar_t * dest, const char * src, size_t max);

Funkce mbstowcs () trvá tři argumenty a vrací celočíselnou hodnotu.

Tato funkce převádí řetězec vícebajtových znaků, jehož první prvek je namířen pomocí src na jeho široký znak (hodnota typu wchar_t).

Výsledek se uloží na místo v paměti, na které ukazuje cíl. Parametr max představuje maximální počet vícebajtových znaků, které mají být převedeny.

Mechanismus převodu je stejný jako u mbtowc (), kromě toho, že stav převodu mbtowc není ovlivněn. Převod se zastaví, pokud:

  • Objeví se nulový znak, který se poté převede a uloží.
  • Byl zjištěn neplatný vícebajtový znak.
  • byl převeden maximální počet vícebajtových znaků.

mbstowcs () parametry

  • dest: Ukazatel na výsledné široké pole znaků.
  • src: Ukazatel na první prvek vícebajtového znaku, který je převeden na široký znak.
  • max: Maximální počet vícebajtových znaků, které mají být převedeny.

mbstowcs () Návratová hodnota

  • Pokud je převod úspěšný, mbstowcs () vrátí počet široký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 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; )

Při spuštění programu bude možný výstup:

 Počet převedených širokých znaků = 1 Řetězec širokých znaků = ─

Zajímavé články...