wctomb
, _wctomb_l
Převede široký znak na odpovídající vícebajtový znak. K dispozici jsou bezpečnější verze těchto funkcí; viz wctomb_s
, _wctomb_s_l
.
Syntaxe
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
Parametry
mbchar
Adresa vícebajtového znaku.
wchar
Široký znak.
Vrácená hodnota
Pokud wctomb
převede široký znak na vícebajtový znak, vrátí počet bajtů (který není nikdy větší než MB_CUR_MAX
) v širokém znaku. Pokud wchar
je znak null širokého znaku (L'\0'), wctomb
vrátí hodnotu 1. Pokud je NULL
cílový ukazatel mbchar
, wctomb
vrátí hodnotu 0. Pokud převod není v aktuálním národním prostředí možný, wctomb
vrátí hodnotu -1 a errno
nastaví se na EILSEQ
hodnotu .
Poznámky
Funkce wctomb
převede svůj wchar
argument na odpovídající vícebajtový znak a uloží výsledek na mbchar
. Funkci můžete volat z libovolného bodu v libovolném programu. wctomb
používá aktuální národní prostředí pro jakékoli chování závislé na národním prostředí; _wctomb_l
je shodný s tím rozdílem wctomb
, že místo toho používá národní prostředí předané. Další informace naleznete v tématu Národní prostředí.
wctomb
ověří jeho parametry. Pokud mbchar
je NULL
, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, errno
je nastaveno na EINVAL
hodnotu a funkce vrátí hodnotu -1.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
wctomb |
<stdlib.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
Tento program znázorňuje chování funkce 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
Viz také
Konverze dat
Národní prostředí
_mbclen
, , mblen
_mblen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
wcstombs
, _wcstombs_l
WideCharToMultiByte