Sdílet prostřednictvím


wcstombs _wcstombs_l

Posloupnost znaků široké převede na odpovídající posloupnost vícebajtových znaků.Bezpečnější verze tyto funkce jsou k dispozici; see wcstombs_s _wcstombs_s_l.

size_t wcstombs(
   char *mbstr,
   const wchar_t *wcstr,
   size_t count 
);
size_t _wcstombs_l(
   char *mbstr,
   const wchar_t *wcstr,
   size_t count,
   _locale_t locale
);
template <size_t size>
size_t wcstombs(
   char (&mbstr)[size],
   const wchar_t *wcstr,
   size_t count 
); // C++ only
template <size_t size>
size_t _wcstombs_l(
   char (&mbstr)[size],
   const wchar_t *wcstr,
   size_t count,
   _locale_t locale
); // C++ only

Parametry

  • mbstr
    Adresa posloupnost vícebajtových znaků.

  • wcstr
    Adresa posloupnost znaků široký.

  • count
    Maximální počet bajtů, které mohou být uloženy ve výstupu vícebajtové řetězce.

  • locale
    Národní prostředí použít.

Vrácená hodnota

Pokud wcstombs úspěšně převede řetězec vícebajtových vrátí počet bajtů zapsaných do vícebajtové výstupní řetězec, s výjimkou ukončení NULL (pokud existuje).Pokud mbstr argument je NULL, wcstombs vrátí požadovaná velikost v bajtech cíl řetězec.Pokud wcstombs nalezne širokými znaky nelze převést na vícebajtové znakové vrátí hodnotu –1 odevzdaných zadejte size_t a nastaví errno na EILSEQ.

Poznámky

wcstombs Funkce převede řetězec znaků wide odkazuje wcstr na odpovídající vícebajtové znaky a ukládá výsledky mbstr pole.count Parametr označuje maximální počet bajtů, které mohou být uloženy ve výstupu vícebajtové řetězce (, velikost mbstr).Obecně není známo, kolik bajtů budou požadovány při převodu celého znakový řetězec.Některé znaky široké bude vyžadovat pouze jednoho bajtu na výstupní řetězec; jiné vyžadují dvě.Pokud jsou dva bajty v řetězec vícebajtových výstup pro každý znak široké vstupní řetězce (včetně znaku široké NULL), výsledek je zaručen přizpůsobit.

Pokud wcstombs narazí znakem null celého znaku (L "\0") před nebo po count dojde, převede ho 8 bit 0 a zastaví.Tedy řetězec vícebajtových znaků na mbstr je zakončený pouze tehdy, pokud wcstombs během převodu zjistí znakem null celého znaku.Pokud na sekvence odkazuje wcstr a mbstr překrývají, chování wcstombs nedefinovaná.

Pokud mbstr argument je NULL, wcstombs vrátí požadovaná velikost v bajtech cíl řetězec.

wcstombsověřuje jeho parametry.Pokud wcstr je NULL, nebo pokud count je větší nežINT_MAX, vyvolá popisovač neplatný parametr této funkce popsané v Ověření parametrů .Pokud je povoleno spuštění pokračovat, nastaví funkci errno na EINVAL a vrátí -1.

wcstombspoužívá aktuální národní prostředí pro všechny národní prostředí závislé na chování; _wcstombs_lje identické používá místo předaný národní prostředí.Další informace naleznete v tématu Národní prostředí.

V jazyce C++ mají tyto funkce šablony přetížení, které vyvolávají novější, zabezpečené protějšků těchto funkcí.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Požadavky

Rutina

Požadované záhlaví

wcstombs

<stdlib.h>

_wcstombs_l

<stdlib.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

Tento program popisuje chování wcstombs funkce.

// crt_wcstombs.c
// compile with: /W3
// This example demonstrates the use
// of wcstombs, which converts a string
// of wide characters to a string of 
// multibyte characters.

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

#define BUFFER_SIZE 100

int main( void )
{
    size_t  count;
    char    *pMBBuffer = (char *)malloc( BUFFER_SIZE );
    wchar_t *pWCBuffer = L"Hello, world.";

    printf("Convert wide-character string:\n" );

    count = wcstombs(pMBBuffer, pWCBuffer, BUFFER_SIZE ); // C4996
    // Note: wcstombs is deprecated; consider using wcstombs_s instead
    printf("   Characters converted: %u\n",
            count );
    printf("    Multibyte character: %s\n\n",
           pMBBuffer );

    free(pMBBuffer);
}
  

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Převod dat

Národní prostředí

_mbclen, mblen, _mblen_l

mbstowcs _mbstowcs_l

mbtowc _mbtowc_l

wctomb _wctomb_l

Funkce WideCharToMultiByte