De functie wctomb () in C ++ converteert een breed teken naar een multibyte-teken.
De functie wctomb () is gedefinieerd in het header-bestand.
wctomb () prototype
int wctomb (char * pmb, wchar_t wc);
De functie wctomb () heeft twee argumenten en retourneert een geheel getal. Deze functie converteert het brede teken dat wordt weergegeven door wc naar zijn multibyte-equivalent en wordt opgeslagen op de geheugenlocatie die wordt aangegeven door pmb. Het maximale aantal tekens dat kan worden opgeslagen, is MB_CUR_MAX .
Als wc het nul-teken is, wordt de nul-byte naar pmb geschreven.
Als pmb een null-pointer is, zal een aanroep naar wctomb () de globale conversiestatus resetten en bepalen of shift-sequenties worden gebruikt.
wctomb () Parameters
- pmb: Pointer naar het resulterende multibyte-teken
- wc: breed teken dat wordt geconverteerd naar een multibyte-teken
wctomb () Retourwaarde
Als pmb geen null-pointer is, retourneert wctomb ():
- het aantal bytes dat is opgenomen in de multibyte-weergave van wc.
- -1 als wc geen geldig teken is.
Als pmb een null-pointer is, wordt de interne conversiestatus opnieuw ingesteld om de oorspronkelijke shift-status weer te geven en retourneert:
- 0 als de huidige multibyte-codering niet toestandsafhankelijk is (gebruikt geen shift-sequenties)
- een niet-nulwaarde als de huidige multibyte-codering toestandsafhankelijk is (gebruikt shiftsequenties).
Voorbeeld: hoe werkt de functie wctomb ()?
#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); )
Wanneer u het programma uitvoert, is een mogelijke uitvoer:
Als pmb niet nul is Retourwaarde = 1 Multibyte-teken: x↨R Als pmb nul is Retourwaarde = 0 Multibyte-teken: