_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Inicializuje znaky řetězce na daný znak.Tyto verze _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l mají rozšíření zabezpečení popsaná v tématu Funkce zabezpečení v CRT.
Důležité |
---|
_mbsnset_s a _mbsnset_s_l nelze použít v aplikacích, které jsou spouštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
errno_t _strnset_s(
char *str,
size_t numberOfElements,
int c,
size_t count
);
errno_t _strnset_s_l(
char *str,
size_t numberOfElements,
int c,
size_t count,
locale_t locale
);
errno_t _wcsnset_s(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count
);
errno_t _wcsnset_s_l(
wchar_t *str,
size_t numberOfElements,
wchar_t c,
size_t count,
_locale_t locale
);
errno_t _mbsnset_s(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count
);
errno_t _mbsnset_s_l(
unsigned char *str,
size_t numberOfElements,
unsigned int c,
size_t count,
_locale_t locale
);
Parametry
str
Řetězec, který má být změněn.numberOfElements
Velikost vyrovnávací paměti str.c
Nastavení znaků.count
Počet znaků, které mají být nastaveny.locale
Použité národní prostředí.
Vrácená hodnota
Nula v případě úspěchu; jinak kód chyby.
Tyto funkce ověřují své argumenty.Pokud str není platný ukazatel ukončený hodnotou null nebo velikost argumentu je menší nebo rovna 0, je vyvolána obslužná rutina neplatného parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, tyto funkce vrátí chybový kód a nastaví errno na tento chybový kód.Výchozí chybový kód je EINVAL, pokud nelze použít konkrétní hodnotu.
Poznámky
Tyto funkce nastaví maximálně prvních count znaků str na c.Pokud je count větší než velikost str, velikost str se použije namísto count.K chybě dojde, pokud count je větší než numberOfElements a oba tyto parametry jsou větší než velikost str.
_wcsnset_s a _mbsnset_s jsou širokoznaká verze a verze vícebajtového znaku _strnset_s.Řetězcový argument _wcsnset_s je řetězec se širokými znaky, argument _mbsnset_s jeřetězec s vícebajtovými znaky.Tyto tři funkce se chovají identicky jinak.
Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.
Ladicí verze těchto funkcí nejprve naplní vyrovnávací paměť hodnotou 0xFD.Chcete-li zakázat toto chování, použijte _CrtSetDebugFillThreshold.
Rutinní mapování obecného textu
Rutina TCHAR.H |
_UNICODE & _MBCS není definováno |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_strnset_s |
<string.h> |
_strnset_s_l |
<tchar.h> |
_wcsnset_s |
<string.h> nebo <wchar.h> |
_wcsnset_s_l |
<tchar.h> |
_mbsnset_s, _mbsnset_s_l |
<mbstring.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
Příklad
// crt_strnset_s.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[15] = "This is a test";
/* Set not more than 4 characters of string to be *'s */
printf( "Before: %s\n", string );
_strnset_s( string, sizeof(string), '*', 4 );
printf( "After: %s\n", string );
}