mbtowc
, _mbtowc_l
Mengonversi karakter multibyte menjadi karakter lebar yang sesuai.
Sintaks
int mbtowc(
wchar_t *wchar,
const char *mbchar,
size_t count
);
int _mbtowc_l(
wchar_t *wchar,
const char *mbchar,
size_t count,
_locale_t locale
);
Parameter
wchar
Alamat karakter lebar (jenis wchar_t
).
mbchar
Alamat urutan byte (karakter multibyte).
count
Jumlah byte yang akan diperiksa.
locale
Lokal yang akan digunakan.
Nilai hasil
Jika mbchar
bukan , dan jika mbchar
menunjuk NULL
ke karakter multibyte yang valid, mbtowc
mengembalikan panjang dalam byte karakter multibyte. Jika mbchar
adalah NULL
atau menunjuk ke karakter null karakter lebar (L'\0'), fungsi mengembalikan 0. Jika objek yang menunjuk ke tidak membentuk karakter multibyte yang mbchar
valid dalam karakter pertama count
, objek akan mengembalikan -1.
Keterangan
Fungsi ini mbtowc
mengonversi count
atau lebih sedikit byte yang ditujukkan ke , mbchar
jika mbchar
bukan NULL
, ke karakter lebar yang sesuai. mbtowc
menyimpan karakter lebar yang dihasilkan di wchar, jika wchar
bukan NULL
. mbtowc
tidak memeriksa lebih dari MB_CUR_MAX
byte. mbtowc
menggunakan lokal saat ini untuk perilaku dependen lokal; _mbtowc_l
identik kecuali menggunakan lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
mbtowc |
<stdlib.h> |
_mbtowc_l |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Semua versi pustaka run-time C.
Contoh
// crt_mbtowc.c
// Illustrates the behavior of the mbtowc function
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
wchar_t *pwcnull = NULL;
wchar_t *pwc = (wchar_t *)malloc( sizeof( wchar_t ) );
printf( "Convert a wide character to multibyte character:\n" );
wctomb_s( &i, pmbc, sizeof(char), wc );
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %x\n\n", *pmbc );
printf( "Convert multibyte character back to a wide "
"character:\n" );
i = mbtowc( pwc, pmbc, MB_CUR_MAX );
printf( " Bytes converted: %u\n", i );
printf( " Wide character: %x\n\n", *pwc );
printf( "Attempt to convert when target is NULL\n" );
printf( " returns the length of the multibyte character:\n" );
i = mbtowc( pwcnull, pmbc, MB_CUR_MAX );
printf( " Length of multibyte character: %u\n\n", i );
printf( "Attempt to convert a NULL pointer to a" );
printf( " wide character:\n" );
pmbc = NULL;
i = mbtowc( pwc, pmbc, MB_CUR_MAX );
printf( " Bytes converted: %u\n", i );
}
Convert a wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Convert multibyte character back to a wide character:
Bytes converted: 1
Wide character: 61
Attempt to convert when target is NULL
returns the length of the multibyte character:
Length of multibyte character: 1
Attempt to convert a NULL pointer to a wide character:
Bytes converted: 0
Baca juga
Konversi data
MultiByteToWideChar
Lokal
Interpretasi urutan karakter multibyte
_mbclen
, mblen
, _mblen_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l
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