Funktionen mbstowcs () i C ++ konverterar en multibyt-teckensträng till motsvarande bred karaktärsekvens.
Funktionen mbstowcs () definieras i rubrikfilen.
mbstowcs () prototyp
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Funktionen mbstowcs () tar tre argument och returnerar ett heltalvärde.
Denna funktion konverterar multibyte-teckensträngen vars första element pekas av src till dess breda karaktär (värde av typen wchar_t).
Resultatet lagras på minnesplatsen som dest. Parametern max representerar det maximala antalet multibyt-tecken som ska konverteras.
Omvandlingsmekanismen är densamma som för mbtowc (), förutom att mbtowc-omvandlingstillståndet inte påverkas. Konverteringen stoppar om:
- En noll karaktär påträffas som sedan konverteras och lagras.
- En ogiltig multibytkaraktär påträffas.
- maximalt antal multibyte-tecken har konverterats.
mbstowcs () Parametrar
- dest: Pekare till den resulterande breda karaktärsuppsättningen.
- src: Pekare till det första elementet i multibytkaraktären som omvandlas till bred karaktär.
- max: Maximalt antal multibyt-tecken som ska konverteras.
mbstowcs () Returvärde
- Om konverteringen lyckas returnerar mbstowcs () antalet breda tecken exklusive det avslutande tecknet (dvs. ' 0') som skrivs till destinationsmatrisen.
- Om något fel inträffar under konverteringen returnerar det -1.
Exempel: Hur fungerar mbstowcs () -funktionen?
#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ör programmet blir en möjlig utdata:
Antal konverterade breda tecken = 1 Bred karaktärssträng = ─