_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l

Inicjuje znaki ciągu do danego znaku. Te wersje programu _strnset, _strnset_l, _wcsnset_l_wcsnset, _mbsnset_mbsnset_l mają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Ważne

_mbsnset_snie można jej _mbsnset_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 _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
Ciąg do zmiany.

numberOfElements
Rozmiar buforu str .

c
Ustawienie znaku.

count
Liczba znaków do ustawienia.

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 nie jest prawidłowym ciągiem zakończonym wartością null lub argument rozmiaru jest mniejszy lub równy 0, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Walidacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, te funkcje zwracają kod błędu i ustawiają errno go na ten kod błędu. Domyślny kod błędu to EINVAL , jeśli nie ma zastosowania bardziej szczegółowa wartość.

Uwagi

Te funkcje ustawiają najwyżej pierwsze count znaki na strcwartość . Jeśli count jest większy niż rozmiar str, rozmiar str jest używany zamiast count. Błąd występuje, jeśli count jest większy niż numberOfElements , a oba te parametry są większe niż rozmiar str.

_wcsnset_si _mbsnset_s są wersjami znaków wielobajtowych i wielobajtowych ._strnset_s Argument ciągu jest ciągiem wielobajtowym _wcsnset_s ; _mbsnset_s jest to ciąg wielobajtowy. Te trzy funkcje zachowują się identycznie inaczej.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: 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 Zdefiniowane _UNICODE Zdefiniowane
_tcsnset_s _strnset_s _mbsnbset_s _wcsnset_s
_tcsnset_s_l _strnset_s_l _mbsnbset_s_l _wcsnset_s_l

Wymagania

Procedura Wymagany nagłówek
_strnset_s <string.h>
_strnset_s_l <Tchar.h>
_wcsnset_s <string.h> lub <wchar.h>
_wcsnset_s_l <Tchar.h>
_mbsnset_s, _mbsnset_s_l <mbstring.h>

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

Przykład

// 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

Zobacz też

Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
strcat, wcscat, _mbscat
strcmp, wcscmp, _mbscmp
strcpy, wcscpy, _mbscpy
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l