Функція c16rtomb () в C ++ перетворює 16-бітове представлення символів у вузьке багатобайтове представлення символів.
Функція c16rtomb () визначена у файлі заголовка.
c16rtomb () Прототип
size_t c16rtomb (char * s, char16_t c16, mbstate_t * ps);
Функція c16rtomb () перетворює utf-16 символ c16 у його багатобайтовий еквівалент і зберігає його в об'єкті, на який вказує s.
Якщо s являє собою нульовий покажчик, виклик еквівалентний c16rtomb (buf, u ' 0', ps) для деякого внутрішнього буфера buf.
Якщо c16 є нульовим широким символом, тобто u ' 0', зберігається нульовий байт.
c16rtomb () Параметри
- s: Вказівник на масив символів, де слід зберігати багатобайтовий символ.
- c16: 16-бітний символ для перетворення.
- ps: вказівник на об'єкт mbstate_t, який використовується при інтерпретації багатобайтового рядка.
c16rtomb () Повернене значення
- Після успіху функція c16rtomb () повертає кількість байтів, записаних в масив символів, на який вказує s.
- У разі відмови повертається -1, а EILSEQ зберігається в errno.
Приклад: Як працює функція 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!