Funkcija wctomb () C ++ paverčia platų simbolį daugiabačiu simboliu.
Funkcija wctomb () yra apibrėžta antraštės faile.
wctomb () prototipas
int wctomb (char * pmb, wchar_t wc);
Funkcija wctomb () užima du argumentus ir pateikia sveiką skaičių. Ši funkcija konvertuoja platų simbolį, kurį vaizduoja wc, į daugiabaitį atitikmenį ir yra saugomas atminties vietoje, nurodytoje pmb. Maksimalus simbolių, kuriuos galima išsaugoti, skaičius yra MB_CUR_MAX .
Jei wc yra nulinis simbolis, nulinis baitas įrašomas į pmb.
Jei pmb yra nulinis rodiklis, iškvietimas į wctomb () nustatys visuotinę konversijos būseną ir nustatys, ar naudojamos poslinkio sekos.
wctomb () parametrai
- pmb: Gauto daugiabačio simbolio žymeklis
- wc: platus simbolis, paverstas daugiabačiu simboliu
wctomb () Grąžinimo vertė
Jei pmb nėra nulinis rodyklė, wctomb () grąžina:
- baitų, esančių wc daugiabačiuose vaizduose, skaičius.
- -1, jei wc nėra tinkamas simbolis.
Jei pmb yra nulinis rodyklė, iš naujo nustatoma jo vidinė konversijos būsena, kuri atspindi pradinę poslinkio būseną, ir grąžina:
- 0, jei dabartinė kelių baitų koduotė nepriklauso nuo būsenos (nenaudojamos poslinkio sekos)
- reikšmė ne nulis, jei dabartinė kelių baitų koduotė priklauso nuo būsenos (naudojama poslinkio seka).
Pavyzdys: Kaip veikia wctomb () funkcija?
#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); )
Kai paleisite programą, galimas rezultatas bus:
Kai pmb nėra nulinis Grąžinimo reikšmė = 1 kelių baitų simbolis: x↨R Kai pmb yra nulis grąžinama vertė = 0 daugiabačio simbolio: