De functie c16rtomb () in C ++ converteert 16-bits tekenweergave naar een smalle multibyte-tekenweergave.
De functie c16rtomb () is gedefinieerd in het header-bestand.
c16rtomb () Prototype
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
De functie c16rtomb () converteert het utf-16-teken c16 naar zijn multibyte-equivalent en slaat het op in het object waarnaar wordt verwezen door s.
Als s een null-pointer voorstelt, is de aanroep equivalent aan c16rtomb (buf, u ' 0', ps) voor een interne buffer buf.
Als c16 het nul-brede teken is, dwz u ' 0', wordt een nul-byte opgeslagen.
c16rtomb () Parameters
- s: Pointer naar een karakterreeks waar het multibyte-teken moet worden opgeslagen.
- c16: Het 16-bits teken dat moet worden geconverteerd.
- ps: een pointer naar een mbstate_t-object dat wordt gebruikt bij het interpreteren van de multibyte-string.
c16rtomb () Retourwaarde
- Bij succes geeft de functie c16rtomb () het aantal bytes terug dat is geschreven naar de tekenreeks waarnaar wordt verwezen door s.
- Bij een fout wordt -1 geretourneerd en wordt EILSEQ opgeslagen in errno.
Voorbeeld: hoe werkt de functie 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!