De functie mbstowcs () in C ++ converteert een multibyte-tekenreeks naar een equivalente brede tekenreeks.
De mbstowcs () -functie is gedefinieerd in het header-bestand.
mbstowcs () prototype
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
De functie mbstowcs () heeft drie argumenten en retourneert een geheel getal.
Deze functie converteert de multibyte-tekenreeks waarvan het eerste element wordt aangeduid door src naar zijn brede karakterweergave (waarde van het type wchar_t).
Het resultaat wordt opgeslagen op de geheugenlocatie aangeduid met dest. De parameter max staat voor het maximale aantal multibyte-tekens dat moet worden geconverteerd.
Het conversiemechanisme is hetzelfde als dat van mbtowc (), behalve dat de conversiestatus van mbtowc niet wordt beïnvloed. De conversie stopt als:
- Er wordt een nul-teken aangetroffen, dat vervolgens wordt geconverteerd en opgeslagen.
- Er is een ongeldig multibyte-teken aangetroffen.
- max. aantal multibyte-tekens is geconverteerd.
mbstowcs () Parameters
- dest: Pointer naar de resulterende brede tekenreeks.
- src: Pointer naar het eerste element van het multibyte-teken dat wordt geconverteerd naar een breed teken.
- max: Maximaal aantal multibyte-tekens dat moet worden omgezet.
mbstowcs () Retourwaarde
- Als de conversie is gelukt, retourneert mbstowcs () het aantal brede tekens exclusief het afsluitende teken (dwz ' 0') dat naar de doelmatrix is geschreven.
- Als er een fout optreedt tijdens de conversie, wordt -1 geretourneerd.
Voorbeeld: hoe mbstowcs () -functie werkt?
#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; )
Wanneer u het programma uitvoert, is een mogelijke uitvoer:
Aantal geconverteerde brede tekens = 1 brede tekenreeks = ─