Funkce c32rtomb () v C ++ převádí 32bitový znak na reprezentaci na úzkou vícebajtovou reprezentaci znaků.
Funkce c32rtomb () je definována v hlavičkovém souboru.
prototyp c32rtomb ()
size_t c32rtomb (char * s, char32_t c32, mbstate_t * ps);
Funkce c32rtomb () převádí znak c32 utf-32 na jeho vícebajtový ekvivalent a ukládá jej do objektu, na který ukazuje s.
Pokud s představuje nulový ukazatel, je volání ekvivalentní c32rtomb (buf, U ' 0', ps) pro nějaký vnitřní buf buf.
Pokud je c32 znakem s nulovou šířkou, tj. U ' 0', uloží se nulový bajt.
Parametry c32rtomb ()
- s: Ukazatel na pole znaků, kde je uložen vícebajtový znak.
- c32: 32bitový znak, který se má převést.
- ps: Ukazatel na objekt mbstate_t použitý při interpretaci vícebajtového řetězce.
c32rtomb () Návratová hodnota
- Při úspěchu funkce c32rtomb () vrací počet bajtů zapsaných do pole znaků, na které ukazuje s.
- Při selhání se vrátí -1 a errno je nastaveno na EILSEQ .
Příklad: Jak funguje funkce 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.