Aracılığıyla paylaş


wcstombs, _wcstombs_l

Geniş bir karakter dizisi çok baytlı karakterlere karşılık gelen bir dizi dönüştürür.Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; 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

Parametreler

  • mbstr
    Çok baytlı karakter dizisi adresidir.

  • wcstr
    Geniş bir karakter dizisi adresidir.

  • count
    Çok baytlı çýktý dizesinde depolanan bayt sayısı.

  • locale
    Kullanılacak yerel ayarı.

Dönüş Değeri

wcstombs Başarıyla baytlı dizeye dönüştürür sonlandırma hariç çıktı çok baytlı dizeye yazılan bayt sayısını verir NULL (varsa).mbstr Bağımsız değişkeni NULL, wcstombs gereken boyut hedef dize bayt cinsinden döndürür.wcstombs Karşılaştığında, çok baytlı karakter dönüştüremiyor geniş bir karakter yazmak için artığını –1 verir size_t ve ayarlar errno için EILSEQ.

Notlar

wcstombs İşlevi tarafından gösterilen geniş karakter dize dönüştürür wcstr için karşılık gelen çok baytlı karakterleri ve sonuçları saklar mbstr dizi.count Parametresi gösterir çok baytlı çýktý dizesinde depolanan bayt sayısı (yani boyutunu mbstr).Genel olarak, geniş karakter dizesi dönüştürürken kaç bayt gerekli olacaktır bilinmemektedir.Bazı geniş karakter çıktı dizesindeki tek bir bayt gerektirir; diğerleri ise iki gerektirir.Çok baytlı çıktı dizesinin Giriş dizesi geniş her karakter için iki bayt ise (geniş karakter dahil olmak üzere NULL), sonuç sığdırmak için garanti edilir.

wcstombs Önce ya da ne zaman geniş karakter null karakteri (l '\0') karşılaştığı count dönüştürür, 8-bit 0 ve durduğunda gerçekleşir.Bu nedenle, en çok baytlı karakter dizesi mbstr yalnızca biten wcstombs dönüştürme sırasında bir geniş karakter null karakteri karşılaşır.Sıraları göre sıralanmasını, wcstr ve mbstr üst üste, davranışını wcstombs tanımlı değil.

mbstr Bağımsız değişkeni NULL, wcstombs gereken boyut hedef dize bayt cinsinden döndürür.

wcstombsparametrelerinin geçerliliğini denetler.wcstr Olan NULL, veya count büyüktür:INT_MAX, açıklandığı gibi bu işlevi geçersiz parametre işleyicisini çağırır Parametre doğrulama .Yürütülmesine devam etmek için izin verilirse, işlevi ayarlar errno için EINVAL ve -1 değerini döndürür.

wcstombsGeçerli yerel ayarı herhangi bir yerel ayara bağımlı davranışını kullanır; _wcstombs_lBunun yerine geçirilen yerel kullanır dışında aynıdır.Daha fazla bilgi için bkz. Yerel ayar.

C++'da, bu işlevlerin daha yeni ve güvenli karşılıkları çağırmak şablon aşırı bu işlevleri vardır.Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.

Gereksinimler

Yordamı

Gerekli başlık

wcstombs

<stdlib.h>

_wcstombs_l

<stdlib.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

Bu programın davranışını gösterilmektedir wcstombs işlevi.

// 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);
}
  

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

Veri Dönüştürme

Yerel ayar

_mbclen, mblen, _mblen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

wctomb, _wctomb_l

WideCharToMultiByte