_mbsnbset
, _mbsnbset_l
Mengatur byte n pertama dari string multibyte-character ke karakter tertentu. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _mbsnbset_s
, _mbsnbset_s_l
.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
unsigned char *_mbsnbset(
unsigned char *str,
unsigned int c,
size_t count
);
unsigned char *_mbsnbset_l(
unsigned char *str,
unsigned int c,
size_t count,
_locale_t locale
);
Parameter
str
String yang akan diubah.
c
Pengaturan byte tunggal atau multibyte-character.
count
Jumlah byte yang akan ditetapkan.
locale
Lokal untuk digunakan.
Nilai hasil
_mbsnbset
mengembalikan penunjuk ke string yang diubah.
Keterangan
Fungsi _mbsnbset
dan _mbsnbset_l
diatur, paling banyak, byte pertama count
dari str
ke c
. Jika count
lebih besar dari panjang str
, panjang str
digunakan alih-alih count
. Jika c
adalah karakter multibyte dan tidak dapat diatur sepenuhnya ke dalam byte terakhir yang ditentukan oleh count
, byte terakhir diisi dengan karakter kosong. _mbsnbset
dan _mbsnbset_l
tidak menempatkan penghentian null di akhir str
.
_mbsnbset
dan _mbsnbset_l
mirip _mbsnset
dengan , kecuali bahwa ia menetapkan count
byte daripada count
karakter c
.
Jika str
adalah NULL
atau count
nol, fungsi ini menghasilkan pengecualian parameter yang tidak valid seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno
diatur ke EINVAL
dan fungsi mengembalikan NULL
. Selain itu, jika c
bukan karakter multibyte yang valid, errno
diatur ke EINVAL
dan spasi digunakan sebagai gantinya.
Nilai output dipengaruhi oleh pengaturan LC_CTYPE
pengaturan kategori lokal. Untuk informasi selengkapnya, lihat setlocale
. Versi _mbsnbset
fungsi ini menggunakan lokal saat ini untuk perilaku dependen lokal ini; _mbsnbset_l
versinya identik kecuali menggunakan parameter lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Catatan Keamanan API ini menimbulkan potensi ancaman yang ditimbulkan oleh masalah buffer overrun. Masalah buffer overrun adalah metode serangan sistem yang sering, yang mengakibatkan peningkatan hak istimewa yang tidak beralasan. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_mbsnbset.c
// compile with: /W3
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 bytes of string to be *'s */
printf( "Before: %s\n", string );
_mbsnbset( string, '*', 4 ); // C4996
// Note; _mbsnbset is deprecated; consider _mbsnbset_s
printf( "After: %s\n", string );
}
Output
Before: This is a test
After: **** is a test
Lihat juga
Manipulasi string
_mbsnbcat
, _mbsnbcat_l
_strnset
, , _strnset_l
_wcsnset
, _wcsnset_l
, , _mbsnset
,_mbsnset_l
_strset
, , _strset_l
_wcsset
, _wcsset_l
, , _mbsset
,_mbsset_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