Функции библиотеки C -wctomb()

Стандартная библиотека C - <stdlib.h>

Описание

Функции библиотеки Cint wctomb(char *str, wchar_t wchar)Преобразовать широкий символwcharПреобразовать его в многобайтовое представление и сохранить вstrНачало массива символов, на который указывает указатель.

Объявление

Ниже приведено объявление функции wctomb().

int wctomb(char *str, wchar_t wchar)

Параметр

  • str-- указатель на массив, достаточно большой для хранения многобайтового символа.
  • wchar-- широкий символ типа wchar_t.

Возвращаемое значение

  • Если str не равен NULL, функция wctomb() возвращает количество байтов, записанных в байтовый массив. Если wchar не может быть представлен как многобайтовая последовательность, она возвращает -1.
  • Если str равен NULL, функция wctomb() возвращает ненулевое значение, если кодировка имеет состояние сдвига, и ноль, если кодировка не имеет состояния.

Пример

Следующий пример демонстрирует использование функции wctomb().

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc(sizeof( char ));

   printf("要转换的宽字符:\n");
   i = wctomb( pmb, wc );
   printf("被转换的字符:%u\n", i);
   printf("多字节字符:%.1s\n", pmb);

   printf("当要转换的字符为 NULL 时尝试转换:\n");
   i = wctomb( pmbnull, wc );
   printf("被转换的字符:%u\n", i);
   /* 不会输出任何值 */
   printf("多字节字符:%.1s\n", pmbnull);
   
   return(0);
}

Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:

要转换的宽字符:
被转换的字符:1
多字节字符:a
当要转换的字符为 NULL 时尝试转换:
被转换的字符:0
多字节字符:

Стандартная библиотека C - <stdlib.h>

Другие расширения