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: