_strnset_s, _strnset_s_l, _wcsnset_s, _wcsnset_s_l, _mbsnset_s, _mbsnset_s_l
Zainicjuj znaków ciągu do danego znaku.Są to wersje _strnset, _strnset_l, _wcsnset, _wcsnset_l, _mbsnset, _mbsnset_l z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.
Ważne |
---|
_mbsnset_si _mbsnset_s_l nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW. |
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 znaków ma być zmieniony.numberOfElements
Rozmiar str buforu.c
Ustawienie znaków.count
Liczba znaków do ustawienia.locale
Ustawienia regionalne używane.
Wartość zwracana
Zero, jeśli kończy się pomyślnie, w przeciwnym razie kod błędu.
Funkcje te sprawdzają poprawność swoich argumentów.Jeśli str nie jest prawidłowym ciągiem zakończonym znakiem null lub rozmiar argument jest mniejsza lub równa 0, a następnie program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, te funkcje powrót kod błędu i zestaw errno z tym kodem błędu.Domyślny kod błędu jest EINVAL Jeśli bardziej określona wartość nie jest stosowana.
Uwagi
Te funkcje ustawione co najwyżej pierwszy count znaków z str do c.Jeśli count jest większa niż rozmiar str, rozmiar str jest używana zamiast count.Jeśli wystąpi błąd count jest większa niż numberOfElements i oba te parametry są większe niż rozmiar str.
_wcsnset_si _mbsnset_s szerokich znaków i znaków wielobajtowych wersje _strnset_s.Argument ciągu z _wcsnset_s jest ciągiem szerokich znaków; z _mbsnset_s jestłańcuch znaków.Zmienia tych trzech funkcji zachowanie takich samych nazwach.
Wartość produkcji jest zależny od ustawienia z LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setlocale Aby uzyskać więcej informacji.Wersje te funkcje, bez _l sufiks Użyj bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; wersje z_l sufiks są identyczne z tym, że używają zamiast przekazany parametr ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Wersje do debugowania tych funkcji najpierw wypełnić bufor z 0xFD.Aby wyłączyć to zachowanie, należy użyć _CrtSetDebugFillThreshold.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rozpoczęto wykonywanie procedury h |
_UNICODE & _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcsnset_s |
_strnset_s |
_mbsnbset_s |
_wcsnset_s |
_tcsnset_s_l |
_strnset_s_l |
_mbsnbset_s_l |
_wcsnset_s_l |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_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ć dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
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 );
}