Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_s
nie 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.
W przypadku _tcsnset_s
poleceń , _tcsncset_s
_tcsnset_s_l
, i _tcsncset_s_l
zobacz Ogólne mapowania funkcji tekstowych.
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 str
c
wartość . 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_s
i _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. 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 za pomocą 0xFE
polecenia . 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 funkcji tekstu ogólnego
Funkcja w kolumnie tchar.h
jest mapowana na funkcję w innych kolumnach w zależności od zestawu znaków zdefiniowanego w czasie kompilacji.
Funkcja tchar.h |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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 |
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