Funkcia c16rtomb () v C ++ prevádza 16-bitovú reprezentáciu znakov na úzku viacbajtovú reprezentáciu znakov.
Funkcia c16rtomb () je definovaná v hlavičkovom súbore.
c16rtomb () prototyp
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
Funkcia c16rtomb () prevádza znak c16 utf-16 na jeho viacbajtový ekvivalent a ukladá ho do objektu, na ktorý odkazuje s.
Ak s predstavuje nulový ukazovateľ, volanie je ekvivalentné príkazu c16rtomb (buf, u ' 0', ps) pre nejaký interný bufr buf.
Ak je c16 nulový široký znak, tj u ' 0', uloží sa nulový bajt.
c16rtomb () parametre
- s: Ukazovateľ na pole znakov, do ktorého sa má uložiť viacbajtový znak.
- c16: 16-bitový znak, ktorý sa má konvertovať.
- ps: Ukazovateľ na objekt mbstate_t použitý pri interpretácii viacbytového reťazca.
c16rtomb () Vrátená hodnota
- Pri úspechu funkcia c16rtomb () vráti počet bajtov zapísaných do poľa znakov, na ktoré odkazuje s.
- Pri zlyhaní sa vráti -1 a EILSEQ sa uloží do chyby .
Príklad: Ako funguje funkcia c16rtomb ()?
#include #include using namespace std; int main() ( const char16_t str() = u"Hello World!"; char s(50); mbstate_t ps(); size_t length; int j = 0; while (str(j)) ( length = c16rtomb(s, str(j), &ps); if ((length == 0) || (length> 50)) break; for (int i=0; i
When you run the program, the output will be:
Hello World!