_mbsnbset, _mbsnbset_l
Nastavuje první bajty n vícebajtového znakového řetězce na zadaný znak.Bezpečnější verze těchto funkcí jsou k dispozici; viz _mbsnbset_s, _mbsnbset_s_l.
Důležité |
---|
Toto API nelze použít v aplikacích, které jsou spuštěny v modulu 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ů, které mají být nastaveny.locale
Použité národní prostředí.
Vrácená hodnota
_mbsnbset vrací ukazatel na upravený řetězec.
Poznámky
Funkce _mbsnbset a _mbsnbset_l nastaví maximálně prvních count bajtů proměnné str k c.Pokud je count větší než délka str, délka str se použije namísto count.Pokud je c vícebajtový znak a nelze jej nastavit zcela do posledního bajtu určeného pomocí count, poslední bajt je ohraničen prázdným znakem._mbsnbset a _mbsnbset_lneumístí ukončovací hodnotu null na konec str.
_mbsnbset a _mbsnbset_lse podobá _mbsnset, s tím rozdílem, že nastaví count bajtů namísto count znaků c.
Pokud str je NULL, nebo count je nula, tato funkce generuje výjimku neplatného parametru, jak je popsáno v Ověření parametru.Pokud smí provádění pokračovat, errno se nastaví na EINVAL a funkce vrátí NULL.Také pokud c není platný vícebajtový znak, errno je nastavena na EINVAL a místo toho je použita mezera.
Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze _mbsnbset této funkce používá aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze _mbsnbset_l je stejná s tím rozdílem, že používá předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.
Bezpečnostní poznámka Toto rozhraní API způsobuje potenciální ohrožení způsobené problémem přetečení vyrovnávací paměti.Problémy s přetečením vyrovnávací paměti jsou častou metodou útoku na systém. Výsledkem je negarantované zvýšení úrovně oprávnění.Další informace naleznete v tématu Předcházení přetečení vyrovnávací paměti.
Rutinní mapování obecného textu
Rutina Tchar.h |
_UNICODE a _MBCS nejsou definovány |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcsnset |
_strnset |
_mbsnbset |
_wcsnset |
_tcsnset_l |
_strnset_l |
_mbsnbset_l |
_wcsnset_l |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_mbsnbset |
<mbstring.h> |
_mbsnbset_l |
<mbstring.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
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. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.
Viz také
Referenční dokumentace
_strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l