Функции библиотеки 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 多字节字符:Другие расширения