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

Интересные статьи...