wctomb()

Преобразовать широкий символ в многобайтовый символ

Прототип:

#include <stdlib.h>
int wctomb( char *s, wchar_t wc );

Аргументы:

s
NULL или указатель, куда функция может сохранить многобайтовый символ.
wc
Широкий символ, который необходимо преобразовать.

Библиотека:

libc

Описание:

Функция wctomb() определяет количество байт, которое необходимо для представления многобайтового символа, который соответствует коду, полученному в аргументе wc. Если s не NULL, то по переданному указателю сохраняется массив, содержащий многобайтовую последовательность. Не более MB_CUR_MAX символов может быть сохранено.

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

Примеры:

#include <stdio.h>
#include <stdlib.h>
wchar_t wchar = { 0x0073 };
char mbbuffer[MB_CUR_MAX];
int main( void )
{
int len;
printf( "Character encodings do %shave state-dependent \nencoding.\n",
(wctomb( NULL, 0 )) ? "" : "not " );
len = wctomb( mbbuffer, wchar );
mbbuffer[len] = '\0';
printf( "%s(%d)\n", mbbuffer, len );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out Character encodings do not have state-dependent encoding. s(1)

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

wcrtomb(), wcsrtombs(), wcstod(), wcstof(), wcstold(), wcstoimax(), wcstoumax(), wcstok(), wcstol(), wcstoll(), wcstombs(), wcstoul(), wcstoull(), wctob()




Предыдущий раздел: Описание API системной библиотеки