_mbsnbset_s, _mbsnbset_s_l
Nastaví první n bajtů vícebajtové znakové řetězce zadaný znak.Tyto verze _mbsnbset, _mbsnbset_l mají vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.
Důležité |
---|
Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v prostředí Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
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
Parametry
str
Řetězec, který má být změněn.size
Velikost vyrovnávací paměti řetězců.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
Nula v případě úspěchu; v opačném případě se kód chyby.
Poznámky
_mbsnbset_s a _mbsnbset_s_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, který je určen count, poslední bajt je ohraničen prázdný znak._mbsnbset_sa _mbsnbset_s_l Neumísťujte ukončení hodnotu null na konci str.
_mbsnbset_sa _mbsnbset_s_l se podobají _mbsnset, s tím rozdílem, že nastavily 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í parametru.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, _wsetlocale Další informace._mbsnbset_s 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_s_l verze je totožný s tím rozdílem, že místo toho používá parametr locale, který je předán v.Další informace naleznete v tématu Národní prostředí.
V jazyce C++ použití těchto funkcí je zjednodušeno díky přetížení šablony; přetížení můžete odvodit vyrovnávací paměti automaticky a tím eliminovat potřebu určit velikost argumentu.Další informace naleznete v tématu Přetížení zabezpečení šablony.
Ladicí verze těchto funkcí vyplnit nejprve vyrovnávací paměť s 0xFD.Chcete-li zakázat toto chování, použijte _CrtSetDebugFillThreshold.
Mapování rutiny obecného textu
Byla zahájena rutina Tchar.h |
_UNICODE a _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s _l |
_mbsnbset_s_l |
_wcsnset_s_l |
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_mbsnbset_s |
<mbstring.h> |
_mbsnbset_s_l |
<mbstring.h> |
Další informace o kompatibilitě v tématu Kompatibilita.
Příklad
// 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 );
}
Výsledek
Ekvivalent v rozhraní .NET Framework
Nelze použít Volání funkce standardním C pomocí 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