Funksjonen mbstowcs () i C ++ konverterer en multibyte-tegnstreng til ekvivalent bred tegnsekvens.
Funksjonen mbstowcs () er definert i topptekstfilen.
mbstowcs () prototype
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Funksjonen mbstowcs () tar tre argumenter og returnerer en heltallverdi.
Denne funksjonen konverterer multibyte-tegnstrengen hvis første element pekes av src til dens brede karakter (verdi av typen wchar_t).
Resultatet lagres på minnestedet som dest. Parameteren maks representerer det maksimale antallet multibyte tegn som skal konverteres.
Konverteringsmekanismen er den samme som for mbtowc (), bortsett fra at mbtowc-konverteringstilstanden er upåvirket. Konverteringen stopper hvis:
- Det oppstår et null-tegn som deretter konverteres og lagres.
- Det oppstår et ugyldig multibyttegn.
- maksimalt antall multibyte tegn er konvertert.
mbstowcs () Parametere
- dest: peker til det resulterende brede tegnsettet.
- src: peker til det første elementet i multibyte-tegnet som konverteres til bredt tegn.
- maks: Maksimalt antall multibyte tegn som skal konverteres.
mbstowcs () Returverdi
- Hvis konverteringen er vellykket, returnerer mbstowcs () antallet brede tegn unntatt det avsluttende tegnet (dvs. ' 0') som skrives til destinasjonsmatrisen.
- Hvis det oppstår feil under konverteringen, 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 kjører programmet, vil en mulig utgang være:
Antall bredt tegn konvertert = 1 bred tegnstreng = ─