Bagikan melalui


_strnset_s, , _wcsnset_s_strnset_s_l, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l, _tcsnset_s, , _tcsncset_s,_tcsncset_s_l

Menginisialisasi karakter string ke karakter tertentu. Versi , , _wcsnset_strnset_l, _wcsnset_l, , _mbsnset, ini _mbsnset_lmemiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT._strnset

Penting

_mbsnset_s dan _mbsnset_s_l tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.

Untuk _tcsnset_s, _tcsnset_s_l, _tcsncset_s, dan _tcsncset_s_l lihat Pemetaan fungsi Generik-teks.

Sintaks

errno_t _strnset_s(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count
);
errno_t _strnset_s_l(
   char *str,
   size_t numberOfElements,
   int c,
   size_t count,
   _locale_t locale
);
errno_t _wcsnset_s(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count
);
errno_t _wcsnset_s_l(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   size_t count,
   _locale_t locale
);
errno_t _mbsnset_s(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count
);
errno_t _mbsnset_s_l(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   size_t count,
   _locale_t locale
);

Parameter

str
String yang akan diubah.

numberOfElements
Ukuran str buffer.

c
Pengaturan karakter.

count
Jumlah karakter yang akan diatur.

locale
Lokal untuk digunakan.

Nilai hasil

Nol jika berhasil, jika tidak, kode kesalahan.

Fungsi-fungsi ini memvalidasi argumennya. Jika str bukan string yang dihentikan null yang valid atau argumen ukuran kurang dari atau sama dengan 0, maka handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan kode kesalahan dan diatur errno ke kode kesalahan tersebut. Kode kesalahan default adalah EINVAL jika nilai yang lebih spesifik tidak berlaku.

Keterangan

Fungsi-fungsi ini diatur, paling banyak, karakter pertama count dari str ke c. Jika count lebih besar dari ukuran str, ukuran str digunakan alih-alih count. Kesalahan terjadi jika count lebih besar dari numberOfElements dan kedua parameter tersebut lebih besar dari ukuran str.

_wcsnset_s dan _mbsnset_s adalah versi karakter lebar dan multibyte-character dari _strnset_s. Argumen _wcsnset_s string adalah string karakter lebar; yang _mbsnset_s merupakan string multibyte-character. Ketiga fungsi ini berulah secara identik jika tidak.

Nilai output dipengaruhi oleh pengaturan LC_CTYPE pengaturan kategori lokal. Untuk informasi selengkapnya, lihat setlocale . Versi fungsi-fungsi ini tanpa _l akhiran menggunakan lokal saat ini untuk perilaku tergantung lokal ini; versi dengan _l akhiran identik kecuali bahwa mereka menggunakan parameter lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.

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 fungsi teks generik

Fungsi dalam tchar.h kolom memetakan ke fungsi di kolom lain tergantung pada kumpulan karakter yang ditentukan pada waktu kompilasi.

tchar.h fungsi _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
_tcsncset_s _strnset_s _mbsnset_s _wcsnset_s
_tcsncset_s_l _strnset_s_l _mbsnset_s_l _wcsnset_s_l

Persyaratan

Rutin Header yang diperlukan
_strnset_s <string.h>
_strnset_s_l <tchar.h>
_wcsnset_s <string.h> atau <wchar.h>
_wcsnset_s_l <tchar.h>
_mbsnset_s, _mbsnset_s_l <mbstring.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_strnset_s.c
#include <string.h>
#include <stdio.h>

int main( void )
{
   char string[15] = "This is a test";
   /* Set not more than 4 characters of string to be *'s */
   printf( "Before: %s\n", string );
   _strnset_s( string, sizeof(string), '*', 4 );
   printf( "After:  %s\n", string );
}
Before: This is a test
After:  **** is a test

Lihat juga

Manipulasi string
Lokal
Interpretasi urutan karakter multibyte
strcat, , wcscat_mbscat
strcmp, , wcscmp_mbscmp
strcpy, , wcscpy_mbscpy
_strset, , _strset_l_wcsset, _wcsset_l, , _mbsset,_mbsset_l