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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk