_mbsnbset_s
, _mbsnbset_s_l
Çok baytlı bir dizenin ilk n baytını belirtilen karaktere ayarlar. 'nin _mbsnbset
_mbsnbset_l
bu sürümleri, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmelerine sahiptir.
Önemli
Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
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
Parametreler
str
Değiştirilecek dize.
size
Dize arabelleğinin boyutu.
c
Tek bayt veya çok baytlı karakter ayarı.
count
Ayarlanacak bayt sayısı.
locale
Kullanılacak yerel ayar.
Dönüş değeri
Başarılı olursa sıfır; aksi takdirde, bir hata kodu.
Açıklamalar
_mbsnbset_s
ve _mbsnbset_s_l
işlevleri, en fazla ilk count
bayt değerini str
olarak c
ayarlar. uzunluğundan büyüksecount
, uzunluğu str
yerine count
kullanılır.str
Çok baytlı bir karakterse ve tarafından count
belirtilen son baytta tamamen ayarlanamıyorsac
, son bayt boş bir karakterle doldurulur. _mbsnbset_s
ve _mbsnbset_s_l
sonuna str
sonlandırıcı null yerleştirmeyin.
_mbsnbset_s
ve _mbsnbset_s_l
, karakterleri c
yerine count
bayt ayarlamaları count
dışında benzer_mbsnset
.
veya NULL
count
sıfır isestr
, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre özel durumu oluşturur. Yürütmenin devam etmesi için izin verilirse, errno
olarak ayarlanır EINVAL
ve işlevi döndürür NULL
. Ayrıca, geçerli bir çok baytlı karakter değilse c
, errno
olarak ayarlanır EINVAL
ve bunun yerine bir boşluk kullanılır.
Çıkış değeri, yerel ayarın LC_CTYPE
kategori ayarının ayarından etkilenir. Daha fazla bilgi için bkz. setlocale
. _mbsnbset_s
Bu işlevin sürümü, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; _mbsnbset_s_l
sürüm, bunun yerine geçirilen yerel ayar parametresini kullanması dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.
C++ dilinde bu işlevlerin kullanımı şablon aşırı yüklemeleri ile basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkarsar ve böylece bir boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Bu işlevlerin hata ayıklama kitaplığı sürümleri önce arabelleği 0xFE ile doldurur. Bu davranışı devre dışı bırakmak için kullanın _CrtSetDebugFillThreshold
.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
Tchar.h yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_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 |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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 );
}
Çıktı
Before: This is a test
After: **** is a test
Ayrıca bkz.
Dize işleme
_mbsnbcat
, _mbsnbcat_l
_strnset
, _strnset_l
, _wcsnset
, , _wcsnset_l
, _mbsnset
, _mbsnset_l
_strset
, _strset_l
, _wcsset
, , _wcsset_l
, _mbsset
, _mbsset_l