Aracılığıyla paylaş


_mbsnbset_s, _mbsnbset_s_l

Çok baytlı bir dizenin ilk n baytını belirtilen karaktere ayarlar. 'nin _mbsnbset _mbsnbset_lbu 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 cayarlar. uzunluğundan büyüksecount, uzunluğu str yerine countkullanılır.str Çok baytlı bir karakterse ve tarafından countbelirtilen son baytta tamamen ayarlanamıyorsac, son bayt boş bir karakterle doldurulur. _mbsnbset_s ve _mbsnbset_s_l sonuna strsonlandırıcı null yerleştirmeyin.

_mbsnbset_sve _mbsnbset_s_l , karakterleri cyerine 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