_strnset_s
, _strnset_s_l
, , _wcsnset_s_l
_mbsnset_s_l
_tcsnset_s
_wcsnset_s
_mbsnset_s
, , _tcsncset_s
_tcsncset_s_l
Inicializuje znaky řetězce na daný znak. Tyto verze , , _strnset_l
_wcsnset
, _wcsnset_l
, _mbsnset
mají _mbsnset_l
vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT._strnset
Důležité
_mbsnset_s
a _mbsnset_s_l
nelze je použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.
Pro _tcsnset_s
, _tcsnset_s_l
_tcsncset_s
a _tcsncset_s_l
viz mapování obecných textových funkcí.
Syntaxe
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ý se má změnit.
numberOfElements
Velikost str
vyrovnávací paměti.
c
Nastavení znaků.
count
Počet znaků, které se mají nastavit
locale
Národní prostředí, které se má použít.
Vrácená hodnota
Nula v případě úspěchu, jinak kód chyby.
Tyto funkce ověřují své argumenty. Pokud str
není platný řetězec ukončený hodnotou null nebo je argument velikosti menší nebo roven 0, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, vrátí tyto funkce kód chyby a nastaví errno
se na tento kód chyby. Výchozí kód chyby je EINVAL
v případě, že se neplatí konkrétnější hodnota.
Poznámky
Tyto funkce se nastavují nejvýše první count
znaky str
na c
hodnotu . Je-li count
větší než velikost str
, velikost str
je použita mí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 širokoznakové a vícebajtové verze ._strnset_s
Řetězcový argument je řetězec širokého _wcsnset_s
_mbsnset_s
znaku; řetězec s vícebajtovým znakem. Tyto tři funkce se chovají stejně jinak.
Výstupní hodnota je ovlivněna nastavením LC_CTYPE
nastavení kategorie národního prostředí. Další informace najdete na webu setlocale
. Verze těchto funkcí bez _l
přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l
příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí. Další informace naleznete v tématu Národní prostředí.
Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE
. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold
.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování obecných textových funkcí
Funkce ve sloupci tchar.h
se mapuje na funkci v ostatních sloupcích v závislosti na znakové sadě, která je definována v době kompilace.
Funkce tchar.h |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
_tcsncset_s |
_strnset_s |
_mbsnset_s |
_wcsnset_s |
_tcsncset_s_l |
_strnset_s_l |
_mbsnset_s_l |
_wcsnset_s_l |
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_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ě najdete 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 );
}
Before: This is a test
After: **** is a test
Viz také
Manipulace s řetězci
Národní prostředí
Interpretace vícebajtových sekvencí znaků
strcat
, , wcscat
_mbscat
strcmp
, , wcscmp
_mbscmp
strcpy
, , wcscpy
_mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, , _mbsset
_mbsset_l