Sdílet prostřednictvím


_strnset_s, _strnset_s_l, _wcsnset_s, , _mbsnset_s_wcsnset_s_l, _mbsnset_s_l, , _tcsncset_s_tcsncset_s_l

Inicializuje znaky řetězce na daný znak. Tyto verze , , _strnset_l_wcsnset, _wcsnset_l, _mbsnsetmají _mbsnset_lvylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT._strnset

Důležité

_mbsnset_sa _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é.

_tcsncset_s_lA _tcsncset_s viz mapování rutin obecného textu.

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 chodnotu . 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_sa _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í rutin obecného textu

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