A C16+ c16rtomb () függvény a 16 bites karakterábrázolást keskeny többbájtos karakterábrázolássá alakítja.
A c16rtomb () függvény a fejlécfájlban van meghatározva.
c16rtomb () prototípus
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
A c16rtomb () függvény átalakítja a c16 utf-16 karaktert többbájtos egyenértékévé, és eltárolja azt az objektumban, amelyre s mutat.
Ha s null mutatót jelent, akkor a hívás egyenértékű valamilyen belső puffer buf esetében a c16rtomb (buf, u ' 0', ps) értékkel.
Ha c16 a null széles karakter, azaz u ' 0', akkor null bájt tárolódik.
c16rtomb () Paraméterek
- s: Olyan karaktertömb mutatója, ahol a többbájtos karaktert tárolni kell.
- c16: Az átalakítandó 16 bites karakter.
- ps: Egy mbstate_t objektum mutatója, amelyet a többbájtos karakterlánc értelmezéséhez használnak.
c16rtomb () Visszatérési érték
- Siker esetén a c16rtomb () függvény visszaadja az s által mutatott karaktertömbbe írt bájtok számát.
- Meghibásodás esetén -1 visszatér, és az EILSEQ az errno-ban tárolódik.
Példa: Hogyan működik a c16rtomb () függvény?
#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!