wctomb, _wctomb_l

Konversikan karakter lebar ke karakter multibyte yang sesuai. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat wctomb_s, _wctomb_s_l.

Sintaks

int wctomb(
   char *mbchar,
   wchar_t wchar
);
int _wctomb_l(
   char *mbchar,
   wchar_t wchar,
   _locale_t locale
);

Parameter

mbchar
Alamat karakter multibyte.

wchar
Karakter yang lebar.

Nilai hasil

Jika wctomb mengonversi karakter lebar menjadi karakter multibyte, karakter tersebut mengembalikan jumlah byte (yang tidak pernah lebih besar dari MB_CUR_MAX) dalam karakter lebar. Jika wchar karakter null karakter lebar (L'\0'), wctomb mengembalikan 1. Jika penunjuk mbchar target adalah NULL, wctomb mengembalikan 0. Jika konversi tidak dimungkinkan di lokal saat ini, wctomb mengembalikan -1 dan errno diatur ke EILSEQ.

Keterangan

Fungsi mengonversi wctomb argumennya wchar ke karakter multibyte yang sesuai dan menyimpan hasilnya di mbchar. Anda dapat memanggil fungsi dari titik mana pun dalam program apa pun. wctomb menggunakan lokal saat ini untuk perilaku yang bergantung pada lokal; _wctomb_l identik dengan wctomb kecuali menggunakan lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.

wctomb memvalidasi parameternya. Jika mbchar adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno diatur ke EINVAL dan fungsi mengembalikan -1.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
wctomb <stdlib.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Program ini menggambarkan perilaku fungsi 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

Baca juga

Konversi data
Lokal
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte