_mbsnbset _mbsnbset_l
Nastavte první n bajtů vícebajtové znakové řetězce zadaný znak.Bezpečnější verze tyto funkce jsou k dispozici; see _mbsnbset_s _mbsnbset_s_l.
Důležité |
---|
Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
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
);
Parametry
str
Řetězec, který má být změněn.c
Nastavení jednobajtových nebo vícebajtových znaků.count
Počet bajtů, kterou chcete nastavit.locale
Chcete-li národní prostředí pro použití.
Vrácená hodnota
_mbsnbsetvrací ukazatel na řetězec změněné.
Poznámky
_mbsnbset a _mbsnbset_l funkce nastavit maximálně první count bajtů str na c.Pokud count je větší než délka str, délka str se používá místo count.Pokud c je vícebajtových znaků a nesmí být nastavena zcela do posledního bajtu určen count, poslední bajt je ohraničen prázdný znak._mbsnbseta _mbsnbset_l neumístí ukončení hodnotu null na konci str.
_mbsnbseta _mbsnbset_l je podobná _mbsnset, s tím rozdílem, že nastaví count bajtů spíše než count znaky c.
Pokud str je NULL nebo count je nula, tato funkce generuje výjimku neplatného parametru, jak je popsáno v Ověření parametrů.Je-li pokračovat, je povoleno zpracování errno je nastavena na EINVAL a vrátí funkce NULL.Také pokud c není platné vícebajtové znakové errno je nastavena na EINVAL a místo toho je použita mezera.
Výstupní hodnota je ovlivněna nastavením LC_CTYPE kategorie nastavení národního prostředí; Viz setlocale pro další informace._mbsnbset Verze této funkce používá aktuální národní prostředí pro toto chování závislé na národním prostředí; _mbsnbset_l verze je totožný s tím rozdílem, že použít místo něho předán parametr locale.Další informace naleznete v tématu Národní prostředí.
Poznámka: zabezpečení toto rozhraní API vzniká potenciální ohrožení vyvolaných problému přetečení vyrovnávací paměti.Přetečení vyrovnávací paměti potíže jsou používaný způsob útoku systému, výsledkem bude vyplacena neoprávněně zvýšení úrovně oprávnění.Další informace naleznete v tématu Zamezení způsobí přetečení vyrovnávací paměti.
Mapování rutiny obecného textu
Byla zahájena rutina Tchar.h |
_UNICODE a _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Příklad
// 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 );
}
Výsledek
Before: This is a test
After: **** is a test
Ekvivalent v rozhraní .NET Framework
Nelze použít Volání funkce standardním C pomocí PInvoke. Další informace naleznete v tématu Platformu vyvolání příklady.
Viz také
Referenční dokumentace
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l