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