Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Преобразует расширенный символ в соответствующий многобайтовый символ. Доступны более безопасные версии этих функций; see wctomb_s, _wctomb_s_l.
Синтаксис
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Параметры
mbchar
Адрес последовательности многобайтовых символов.
wchar
Расширенный символ.
Возвращаемое значение
Если функция wctomb преобразует расширенный символ в многобайтовый символ, она возвращает число байтов (которое никогда не превышает MB_CUR_MAX) в расширенном символе. Если wchar является расширенным нуль-символом (L '\0'), wctomb возвращает 1. Если целевой указатель mbchar равен NULL, wctomb возвращает значение 0. Если преобразование невозможно в текущем языковом стандарте, wctomb возвращает значение -1 и errno имеет значение EILSEQ.
Замечания
Функция wctomb преобразует свой аргумент wchar в соответствующий многобайтовый символ и сохраняет результат в mbchar. Эту функцию можно вызывать из любой точки в любой программе. Функция wctomb использует текущий языковой стандарт для любых аспектов поведения, зависящих от языкового стандарта; функция _wctomb_l идентична wctomb за исключением того, что она использует переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.
Кроме того, функция wctomb проверяет свои параметры. В противном mbchar NULLслучае вызывается недопустимый обработчик параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, параметр errno устанавливается в значение EINVAL и функция возвращает –1.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
| Маршрут | Обязательный заголовок |
|---|---|
wctomb |
<stdlib.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Эта программа иллюстрирует поведение функции wctomb.
// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf( "Convert a wide character:\n" );
i = wctomb( pmb, wc ); // C4996
// Note: wctomb is deprecated; consider using wctomb_s
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
Characters converted: 1
Multibyte character: a
См. также
Преобразование данных
Локаль
_mbclen, , mblen_mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte