_mbsnbset_s
, _mbsnbset_s_l
Mengatur byte n pertama dari string multibyte-character ke karakter tertentu. Versi _mbsnbset
, _mbsnbset_l
ini memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT.
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
errno_t _mbsnbset_s(
unsigned char *str,
size_t size,
unsigned int c,
size_t count
);
errno_t _mbsnbset_s_l(
unsigned char *str,
size_t size,
unsigned int c,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbset_s(
unsigned char (&str)[size],
unsigned int c,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbset_s_l(
unsigned char (&str)[size],
unsigned int c,
size_t count,
_locale_t locale
); // C++ only
Parameter
str
String yang akan diubah.
size
Ukuran buffer string.
c
Pengaturan byte tunggal atau multibyte-character.
count
Jumlah byte yang akan ditetapkan.
locale
Lokal untuk digunakan.
Nilai hasil
Nol jika berhasil; jika tidak, kode kesalahan.
Keterangan
Fungsi _mbsnbset_s
dan _mbsnbset_s_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_s
dan _mbsnbset_s_l
jangan menempatkan penghentian null di akhir str
.
_mbsnbset_s
dan _mbsnbset_s_l
menyerupai _mbsnset
, kecuali bahwa mereka 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_s
fungsi ini menggunakan lokal saat ini untuk perilaku dependen lokal ini; _mbsnbset_s_l
versinya identik kecuali sebaliknya menggunakan parameter lokal yang diteruskan. Untuk informasi selengkapnya, lihat Lokal.
Di C++, penggunaan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis dan dengan demikian menghilangkan kebutuhan untuk menentukan argumen ukuran. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold
.
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_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_mbsnbset_s.c
#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_s( string, sizeof(string), '*', 4 );
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