Udostępnij za pośrednictwem


_strset_s, , _strset_s_l, _wcsset_s, _wcsset_s_l, , _mbsset_s_mbsset_s_l

Ustawia znaki ciągu na znak. Te wersje programu _strset, _strset_l, _wcsset_l_wcsset, _mbsset_mbsset_l mają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Ważne

_mbsset_snie można jej _mbsset_s_l używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

errno_t _strset_s(
   char *str,
   size_t numberOfElements,
   int c
);
errno_t _strset_s_l(
   char *str,
   size_t numberOfElements,
   int c,
   _locale_t locale
);
errno_t _wcsset_s(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c
);
errno_t *_wcsset_s_l(
   wchar_t *str,
   size_t numberOfElements,
   wchar_t c,
   _locale_t locale
);
errno_t _mbsset_s(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c
);
errno_t _mbsset_s_l(
   unsigned char *str,
   size_t numberOfElements,
   unsigned int c,
   _locale_t locale
);

Parametry

str
Ciąg zakończony o wartości null, który ma zostać ustawiony.

numberOfElements
Rozmiar buforu str .

c
Ustawienie znaku.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zero, jeśli się powiedzie, w przeciwnym razie kod błędu.

Te funkcje weryfikują swoje argumenty. Jeśli str jest wskaźnikiem o wartości null lub numberOfElements argument jest mniejszy lub równy 0, albo blok przekazany w elemmencie nie kończy się wartością null, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Walidacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EINVAL i ustawiają wartość errno EINVAL.

Uwagi

Funkcja _strset_s ustawia wszystkie znaki str na c (przekonwertowane na char), z wyjątkiem znaku null zakończenia. _wcsset_si _mbsset_s są wersjami znaków wielobajtowych i wielobajtowych ._strset_s Typy danych argumentów i zwracane wartości różnią się odpowiednio. Te funkcje zachowują się identycznie inaczej.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz setlocale. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Wersje biblioteki debugowania tych funkcji najpierw wypełniają bufor 0xFE. Aby wyłączyć to zachowanie, użyj polecenia _CrtSetDebugFillThreshold.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_tcsset_s _strset_s _mbsset_s _wcsset_s
_tcsset_s_l _strset_s_l _mbsset_s_l _wcsset_s_l

Wymagania

Procedura Wymagany nagłówek
_strset_s <string.h>
_strset_s_l <tchar.h>
_wcsset_s <string.h> lub <wchar.h>
_wcsset_s_l <tchar.h>
_mbsset_s, _mbsset_s_l <mbstring.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// crt_strset_s.c
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   char string[] = "Fill the string with something.";
   printf( "Before: %s\n", string );
   _strset_s( string, _countof(string), '*' );
   printf( "After:  %s\n", string );
}
Before: Fill the string with something.
After:  *******************************

Zobacz też

Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
_mbsnbset, _mbsnbset_l
memset, wmemset
strcat, , wcscat_mbscat
strcmp, , wcscmp_mbscmp
strcpy, , wcscpy_mbscpy
_strnset, , _strnset_l, _wcsnset, _wcsnset_l, , _mbsnset_mbsnset_l