C ++ mbstowcs () - C ++ standaardbibliotheek

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 = ─

Interessante artikelen...