mbstowcs_s
, _mbstowcs_s_l
Mengonversi urutan karakter multibyte ke urutan karakter lebar yang sesuai. Versi ,_mbstowcs_l
dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.mbstowcs
Sintaks
errno_t mbstowcs_s(
size_t *pReturnValue,
wchar_t *wcstr,
size_t sizeInWords,
const char *mbstr,
size_t count
);
errno_t _mbstowcs_s_l(
size_t *pReturnValue,
wchar_t *wcstr,
size_t sizeInWords,
const char *mbstr,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t mbstowcs_s(
size_t *pReturnValue,
wchar_t (&wcstr)[size],
const char *mbstr,
size_t count
); // C++ only
template <size_t size>
errno_t _mbstowcs_s_l(
size_t *pReturnValue,
wchar_t (&wcstr)[size],
const char *mbstr,
size_t count,
_locale_t locale
); // C++ only
Parameter
pReturnValue
Jumlah karakter yang dikonversi.
wcstr
Alamat buffer untuk string karakter lebar yang dikonversi yang dihasilkan.
sizeInWords
Ukuran wcstr
buffer dengan kata-kata.
mbstr
Alamat urutan karakter multibyte null yang dihentikan.
count
Jumlah maksimum karakter lebar untuk disimpan dalam wcstr
buffer, tidak termasuk penghentian null, atau _TRUNCATE
.
locale
Lokal yang akan digunakan.
Nilai hasil
Nol jika berhasil, kode kesalahan pada kegagalan.
Kondisi kesalahan | Mengembalikan nilai dan errno |
---|---|
wcstr adalah NULL dan sizeInWords > 0 |
EINVAL |
mbstr is NULL |
EINVAL |
Buffer tujuan terlalu kecil untuk berisi string yang dikonversi (kecuali count adalah _TRUNCATE ; lihat Keterangan di bawah) |
ERANGE |
wcstr bukan NULL dan sizeInWords == 0 |
EINVAL |
Jika salah satu kondisi ini terjadi, pengecualian parameter yang tidak valid dipanggil seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan kode kesalahan dan mengatur errno
seperti yang ditunjukkan dalam tabel.
Keterangan
Fungsi ini mbstowcs_s
mengonversi string karakter multibyte yang diacu ke mbstr
menjadi karakter lebar yang disimpan dalam buffer yang ditujukkan oleh wcstr
. Konversi akan berlanjut untuk setiap karakter hingga salah satu kondisi ini terpenuhi:
Karakter null multibyte ditemui
Ditemui karakter multibyte yang tidak valid
Jumlah karakter lebar yang
wcstr
disimpan dalam buffer sama dengancount
.
String tujuan selalu dihentikan null (bahkan jika ada kesalahan).
Jika count
adalah nilai _TRUNCATE
khusus , maka mbstowcs_s
mengonversi string sebanyak yang akan masuk ke dalam buffer tujuan, sambil tetap meninggalkan ruang untuk terminator null.
Jika mbstowcs_s
berhasil mengonversi string sumber, string sumber menempatkan ukuran dalam karakter luas string yang dikonversi, termasuk terminator null, ke dalam *pReturnValue
(disediakan pReturnValue
bukan NULL
). Ukuran dihitung bahkan jika wcstr
argumen adalah NULL
, dan menyediakan cara untuk menentukan ukuran buffer yang diperlukan. Jika wcstr
adalah NULL
, count
diabaikan, dan sizeInWords
harus 0.
Jika mbstowcs_s
menemukan karakter multibyte yang tidak valid, karakter tersebut menempatkan 0 dalam *pReturnValue
, mengatur buffer tujuan ke string kosong, mengatur errno
ke EILSEQ
, dan mengembalikan EILSEQ
.
Jika urutan menunjuk ke oleh mbstr
dan wcstr
tumpang tindih, perilaku mbstowcs_s
tidak terdefinisi.
Penting
Pastikan dan wcstr
mbstr
jangan tumpang tindih, dan itu mencerminkan jumlah karakter multibyte yang count
akan dikonversi dengan benar.
mbstowcs_s
menggunakan lokal saat ini untuk perilaku yang bergantung pada lokal; _mbstowcs_s_l
identik kecuali menggunakan lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis (menghilangkan kebutuhan untuk menentukan argumen ukuran) dan mereka dapat secara otomatis mengganti fungsi lama yang tidak aman dengan rekan-rekan yang lebih baru dan aman. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
mbstowcs_s |
<stdlib.h> |
_mbstowcs_s_l |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Baca juga
Konversi data
Lokal
MultiByteToWideChar
Interpretasi urutan karakter multibyte
_mbclen
, mblen
, _mblen_l
mbtowc
, _mbtowc_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