Toiminto mbtowc () C ++: ssa muuntaa monitavuisen merkin leveäksi merkiksi.
Mbtwoc () -funktio määritetään otsikkotiedostossa.
mbtowc () -prototyyppi
int mbtowc (wchar_t * pwc, const char * pmb, koko_t max);
Mbtowc () -funktio vie kolme argumenttia ja palauttaa kokonaisluvun. Tämä toiminto muuntaa pmb: n osoittaman monitavuisen merkin leveäksi merkiksi (tyypin wchar_t arvo) ja tallennetaan pwc: n osoittamaan muistipaikkaan.
Jos pmb on nollaosoitin, kutsu mbtowc () nollaa yleisen muunnostilan ja määrittää, käytetäänkö siirtosekvenssejä.
mbtowc () -parametrit
- pwc: Osoitin saadulle laajalle luonnolle
- pmb: Osoitin monitavuiseen merkkiin, joka muunnetaan leveäksi merkiksi
- max: Suurin mahdollinen monitavuisen merkin koko tavuina.
mbtowc () Palautusarvo
Jos pmb ei ole nollaosoitin, mbtowc () palauttaa:
- pmb: n osoittaman monitavuisen merkin tavujen lukumäärä.
- -1, jos pmb: n osoittama ensimmäinen tavu ei muodosta kelvollista monitavuista merkkiä.
- 0, jos pmb osoittaa lopetettavaa nollamerkkiä eli 0.
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 mbtowc () -toiminto toimii?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Kun suoritat ohjelmaa, mahdollinen tulos on:
Palautusarvo = 1 Leveä merkkijono: W @