Funktionen mbstowcs () i C ++ konverterer en multibyttegnstreng til ækvivalent bred tegnsekvens.
Funktionen mbstowcs () er defineret i headerfilen.
mbstowcs () prototype
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Funktionen mbstowcs () tager tre argumenter og returnerer en heltalværdi.
Denne funktion konverterer multibyte-tegnstrengen, hvis første element peges af src til dens brede karakter (værdi af typen wchar_t).
Resultatet gemmes på det hukommelsessted, der er peget af dest. Parameteren max repræsenterer det maksimale antal multibyttegn, der skal konverteres.
Konverteringsmekanismen er den samme som for mbtowc (), bortset fra at mbtowc-konverteringstilstanden er upåvirket. Konverteringen stopper, hvis:
- Der opstår et nul tegn, som derefter konverteres og gemmes.
- Der opstår et ugyldigt multibyttegn.
- maks. antal multibyttegn er konverteret.
mbstowcs () Parametre
- dest: Markør til det resulterende brede tegnarray.
- src: Markør til det første element i multibyttegnet, der konverteres til bred karakter.
- max: Maksimalt antal multibyte tegn, der skal konverteres.
mbstowcs () Returværdi
- Hvis konverteringen er vellykket, returnerer mbstowcs () antallet af brede tegn eksklusive det afsluttende tegn (dvs. ' 0'), der skrives til destinationsarrayet.
- Hvis der opstår en fejl under konvertering, returnerer den -1.
Eksempel: Hvordan fungerer mbstowcs ()?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Når du kører programmet, vil en mulig output være:
Antal konverterede brede tegn = 1 bred tegnstreng = ─