C ++ mbstowcs () - Standardna knjižnica C ++

Funkcija mbstowcs () v jeziku C ++ pretvori večbajtni niz znakov v enakovredno široko zaporedje znakov.

Funkcija mbstowcs () je definirana v datoteki glave.

prototip mbstowcs ()

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

Funkcija mbstowcs () sprejme tri argumente in vrne celoštevilčno vrednost.

Ta funkcija pretvori večbajtni niz znakov, katerega prvi element je prikazan s src, v njegovo široko predstavitev znaka (vrednost tipa wchar_t).

Rezultat je shranjen na pomnilniškem mestu, ki ga kaže dest. Parameter max predstavlja največje število večbajtnih znakov, ki jih je treba pretvoriti.

Mehanizem pretvorbe je enak mehanizmu pretvorbe mbtowc (), le da stanje pretvorbe mbtowc ne vpliva. Pretvorba se ustavi, če:

  • Naleti se na ničelni znak, ki se nato pretvori in shrani.
  • Prišlo je do neveljavnega večbajtnega znaka.
  • pretvorjeno je bilo največje število večbajtnih znakov.

mbstowcs () Parametri

  • dest: Kazalec na nastalo široko polje znakov.
  • src: Kazalec na prvi element večbajtnega znaka, ki se pretvori v širok znak.
  • max: največje število pretvorjenih večbajtnih znakov.

mbstowcs () Vrnjena vrednost

  • Če je pretvorba uspešna, mbstowcs () vrne število širokih znakov brez končnega znaka (tj. 0), ki je zapisan v ciljno matriko.
  • Če med pretvorbo pride do napake, vrne -1.

Primer: Kako deluje funkcija 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; )

Ko zaženete program, bo možen izhod:

 Število pretvorjenih širokih znakov = 1 Široki niz znakov = ─

Zanimive Članki...