_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Bir dizenin karakterlerini verilen bir karakterde başlatır.Bu _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l sürümlerinde CRT'deki Güvenlik Özellikleri içinde açıklandığı gibi güvenlik geliştirmeleri mevcut olabilir.
Önemli |
---|
_mbsnset_s ve _mbsnset_s_l Windows Çalışma Zamanı'nda yürütülen uygulamalarda kullanılamazlar.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri. |
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
);
Parametreler
str
Değiştirilecek dize.numberOfElements
str arabelleğinin boyutu.c
Karakter ayarı.count
Ayarlanacak karakter sayısı.locale
Kullanılacak yerel ayar.
Dönüş Değeri
Başarılıysa sıfır; aksi halde hata kodu.
Bu işlevler, kendi bağımsız değişkenlerini doğrular.str geçerli bir null sonlandırılan dize değilse veya bağımsız değişkenin boyutu 0 değerinden küçük veya eşitse Parametre Doğrulama konusunda açıklandığı gibi geçersiz parametre işleyicisi çağrılır.Yürütmenin devam etmesine izin verilirse, bu işlevler bir hata kodu döndürür ve errno öğesini bu hata koduna ayarlar.Varsayılan hata kodu, daha özgül bir değer geçerli değilse EINVAL'dır.
Notlar
Bu işlevler, en çok, str'nin ilk count karakterini c olarak ayarlar.count boyutu str boyutundan büyükse, count yerine str uzunluğu kullanılır.count öğesi numberOfElements öğesinden büyükse ve bu parametrelerin her ikisi str öğesinin boyutundan büyükse, hata oluşur.
_wcsnset_s ve _mbsnset_s _strnset_s öğesinin geniş karakter ve çok baytlı karakter sürümleridir._wcsnset_s dize bağımsız değişkeni, geniş karakterli bir dize; _mbsnset_s dize bağımsız değişkeni çok baytlı karakter dizesi.Bu üç işlev, aynı şekilde davranır.
Çıkış değeri, yerel ayarın LC_CTYPE kategori ayarından etkilenir; daha fazla bilgi için, bkz. setlocale.Bu işlevlerin, _l sonekine sahip olmayan sürümleri, yerel ayara bağlı davranışı için, geçerli yerel ayarı kullanır; _l sonekine sahip sürümler, bunun yerine iletilmiş yerel ayar parametresini kullanması hariç aynıdır.Daha fazla bilgi için bkz. Yerel Ayar.
Bu işlevlerin hata ayıklama sürümleri arabelleği ilk önce 0xFD ile doldurur.Bu davranışı devre dışı bırakmak için _CrtSetDebugFillThreshold kullanın.
Genel Metin Yordam Eşleşmeleri
TCHAR.H yordamı |
_UNICODE & _MBCS tanımlanmamış |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> or <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s, _mbsnset_s_l |
<mbstring.h> |
Ek uyumluluk bilgileri için bkz. Uyumluluk.
Örnek
// 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 );
}