_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 _mbsnsetdengan , 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 );
}

Hasil

Before: This is a test
After:  **** is a test

Baca juga

Manipulasi string
_mbsnbcat, _mbsnbcat_l
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l