Aracılığıyla paylaş


_mbsnbset, _mbsnbset_l

Çok baytlı bir dizenin ilk n baytını belirtilen karaktere ayarlar. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _mbsnbset_s, _mbsnbset_s_l.

Ö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

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
);

Parametreler

str
Değiştirilecek dize.

c
Tek bayt veya çok baytlı karakter ayarı.

count
Ayarlanacak bayt sayısı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

_mbsnbset değiştirilen dizeye bir işaretçi döndürür.

Açıklamalar

_mbsnbset ve _mbsnbset_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 ve _mbsnbset_l sonuna strsonlandırıcı null yerleştirmez.

_mbsnbsetve _mbsnbset_l ile benzerdir_mbsnset, ancak karakterleri cyerine count baytları ayarlarcount.

countNULL veya sıfır isestr, bu işlev Parametre doğrulamasında 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 Bu işlevin sürümü, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; _mbsnbset_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.

Güvenlik Notu Bu API, arabellek taşması sorununun neden olduğu olası bir tehdide neden olur. Arabellek taşması sorunları sık karşılaşılan bir sistem saldırısı yöntemidir ve bu da ayrıcalıkların gereksiz bir şekilde yükseltilmesine neden olur. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma.

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 _strnset _mbsnbset _wcsnset
_tcsnset_l _strnset_l _mbsnbset_l _wcsnset_l

Gereksinimler

Yordam Gerekli başlık
_mbsnbset <mbstring.h>
_mbsnbset_l <mbstring.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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 );
}

Çı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