C ++ wctomb () - C ++ - vakiokirjasto

Toiminto wctomb () C ++: ssa muuntaa laajan merkin monitavuiseksi.

Wctomb () -toiminto määritetään otsikkotiedostossa.

wctomb () -prototyyppi

 int wctomb (char * pmb, wchar_t wc);

Wctomb () -funktio vie kaksi argumenttia ja palauttaa kokonaisluvun. Tämä toiminto muuntaa wc: n esittämän leveän merkin monitavuiseen ekvivalenttiinsa ja se tallennetaan pmb: n osoittamaan muistipaikkaan. Tallennettavissa olevien merkkien enimmäismäärä on MB_CUR_MAX .

Jos wc on tyhjä merkki, nolla tavu kirjoitetaan pmb: hen.

Jos pmb on nollaosoitin, kutsu wctomb (): lle nollaa yleisen muunnostilan ja määrittää, käytetäänkö siirtosekvenssejä.

wctomb () -parametrit

  • pmb: Osoitin saadulle monitavuiselle merkille
  • wc: Laaja merkki, joka muunnetaan monitavuiseksi merkiksi

wctomb () Palautusarvo

Jos pmb ei ole nollaosoitin, wctomb () palauttaa:

  • tavun määrä, joka sisältyy wc: n monitavuiseen esitykseen.
  • -1, jos wc ei ole kelvollinen merkki.

Jos pmb on nollaosoitin, palauttaa sen sisäisen muuntotilan edustamaan alkuperäistä siirtotilaa ja palauttaa:

  • 0, jos nykyinen monitavuinen koodaus ei ole tilasta riippuvainen (ei käytä siirtosekvenssejä)
  • arvo, joka ei ole nolla, jos nykyinen monitavuinen koodaus on tilasta riippuvainen (käyttää siirtosekvenssejä).

Esimerkki: Kuinka wctomb () -toiminto toimii?

 #include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )

Kun suoritat ohjelmaa, mahdollinen tulos on:

 Kun pmb ei ole nolla Palautusarvo = 1 monitavuinen merkki: x↨R Kun pmb on nolla Palautusarvo = 0 monitavuinen merkki:

Mielenkiintoisia artikkeleita...