_mbsnbset, _mbsnbset_l
Çok baytlı bir karakter dizesinin ilk n baytını belirtilen bir 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ı'nda yürütülen uygulamalarda kullanılamaz.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri. |
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 baytlı 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.
Notlar
_mbsnbset ve _mbsnbset_l işlevleri str dizesinin en çok ilk count baytını c yapar.count uzunluğu str uzunluğundan büyükse, count yerine str uzunluğu kullanılır.c çok baytlı bir karakterse ve count tarafından belirtilen son bayrak tamamen ayarlanamıyorsa, son bayt bir boş karakterle doldurulur._mbsnbset ve _mbsnbset_lsonlandırıcı null karakterini str öğesinin sonuna yerleştirmez.
cöğesinin count karakterleri yerine count baytları ayarlaması dışında, _mbsnset öğesi _mbsnbset ve _mbsnbset_l öğelerine benzerdir.
strNULL ise veya count sıfırsa bu işlev, Parametre Doğrulama konusunda açıklandığı gibi geçersiz parametre özel durumu oluşturur.Yürütmenin devam etmesine izin verilirse, errno öğesi EINVAL olarak ayarlanır ve işlev NULL döndürür.Ayrıca, c geçerli bir çok baytlı karakter değilse, errno öğesi EINVAL öğesine ayarlanır ve yerine boşluk kullanılır.
Çıkış değeri, yerel ayarın LC_CTYPE kategori ayarından etkilenir; daha fazla bilgi için, bkz. setlocale.Bu işlevin _mbsnbset sürümü yerel ayara bağımlı bu davranış için geçerli yerel ayarı kullanır; _mbsnbset_l sürümü, kendisine geçilen yerel ayar parametresini kullanması dışında aynıdır.Daha fazla bilgi için bkz. Yerel Ayar.
Güvenlik Notu Bu API, bir arabellek taşması sorunu oluştuğunda potansiyel bir tehlike doğurur.Arabellek taşması sorunları, haksız ayrıcalık sistem saldırı, bir unwarranted ayrıcalık yükseltilmesi ile sonuçlanan sık kullanılan bir sistem saldırısı yöntemidir.Daha fazla bilgi için, bkz. Arabellek Taşmalarını Önleme.
Genel Metin Yordam Eşleşmeleri
Tchar.h yordamı |
_UNICODE ve _MBCS tanımlanmaz |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_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 ek uyumluluk bilgileri 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
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.
Ayrıca bkz.
Başvuru
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l