C ++ wcrtomb () - Стандартна бібліотека C ++

Функція wcrtomb () в C ++ перетворює широкий символ у своє вузьке багатобайтове представлення.

Wcrtomb () визначається у файлі заголовка.

прототип wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Функція wcrtomb () перетворює широкий символ, представлений wc, у вузький багатобайтовий символ і зберігається у адресі, на яку вказує s.

  • Якщо s не є нульовим покажчиком, функція wcrtomb () визначає максимальну кількість байтів, необхідну для зберігання багатобайтового подання wc, і зберігає його в місці пам'яті, на яке вказує s. Можна записати максимум MB_CUR_MAX байт. Значення ps оновлюється за необхідності.
  • Якщо s є нульовим покажчиком, виклик еквівалентний wcrtomb(buf, L'', ps)деякому внутрішньому буферу buf.
  • Якщо wc == L''зберігається нульовий байт.

Параметри wcrtomb ()

  • s: вказівник на багатобайтовий масив символів для збереження результату.
  • wc: широкий символ для перетворення.
  • ps: вказівник на стан перетворення, який використовується при інтерпретації багатобайтового рядка

wcrtomb () Повертається значення

  • Після успіху функція wcrtomb () повертає кількість байтів, записаних в масив символів, на перший елемент якого вказує s.
  • При відмові (тобто wc не є допустимим широким символом), він повертає -1, errno встановлюється на EILSEQ і залишає * ps у невизначеному стані.

Приклад: Як працює функція wcrtomb ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

Цікаві статті...