strcat_s
, , wcscat_s
, , _mbscat_s
_mbscat_s_l
Dołącza ciąg. Te wersje programu wcscat
_mbscat
strcat
, mają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Ważne
_mbscat_s
nie można jej _mbscat_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 strcat_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
errno_t wcscat_s(
wchar_t *strDestination,
size_t numberOfElements,
const wchar_t *strSource
);
errno_t _mbscat_s(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource
);
errno_t _mbscat_s_l(
unsigned char *strDestination,
size_t numberOfElements,
const unsigned char *strSource,
_locale_t locale
);
template <size_t size>
errno_t strcat_s(
char (&strDestination)[size],
const char *strSource
); // C++ only
template <size_t size>
errno_t wcscat_s(
wchar_t (&strDestination)[size],
const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s(
unsigned char (&strDestination)[size],
const unsigned char *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s_l(
unsigned char (&strDestination)[size],
const unsigned char *strSource,
_locale_t locale
); // C++ only
Parametry
strDestination
Bufor ciągu docelowego zakończony o wartości null.
numberOfElements
Rozmiar buforu ciągu docelowego.
strSource
Bufor ciągu źródłowego zakończony o wartości null.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
Zero w przypadku powodzenia; kod błędu dotyczący błędu.
Warunki błędu
strDestination |
numberOfElements |
strSource |
Wartość zwracana | Zawartość strDestination |
---|---|---|---|---|
NULL lub nieokreślone |
dowolny | dowolny | EINVAL |
niezmodyfikowane |
dowolny | dowolny | NULL |
EINVAL |
strDestination[0] ustaw wartość 0 |
dowolny | 0 lub za mała | dowolny | ERANGE |
strDestination[0] ustaw wartość 0 |
Uwagi
Funkcja strcat_s
dołącza strSource
i strDestination
kończy wynikowy ciąg znakiem null. Początkowy znak strSource
zastępowania kończącego znak null .strDestination
Zachowanie elementu strcat_s
jest niezdefiniowane, jeśli ciągi źródłowe i docelowe nakładają się na siebie.
Drugi parametr to całkowity rozmiar buforu, a nie pozostały rozmiar:
char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End"); // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect
wcscat_s
i _mbscat_s
są wersjami znaków wielobajtowych i wielobajtowych .strcat_s
Argumenty i wartość zwracana wcscat_s
wartości to ciągi wieloznakowe. Argumenty i wartość zwracana wartości to ciągi wielobajtowe _mbscat_s
znaków. Te trzy funkcje zachowują się identycznie inaczej.
Jeśli strDestination
jest wskaźnikiem o wartości null lub nie jest zakończony wartością null, lub jeśli strSource
jest wskaźnikiem, lub jeśli ciąg docelowy jest za mały, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem NULL
w temacie Walidacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EINVAL
i ustawiają wartość errno
EINVAL
.
Wersje funkcji, które mają sufiks, mają _l
takie samo zachowanie, ale użyj parametru ustawień regionalnych przekazanych zamiast bieżących ustawień regionalnych. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
W języku C++używanie tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wnioskować długość buforu (eliminując konieczność określenia argumentu rozmiaru) i mogą automatycznie zastępować starsze, niezabezpieczone funkcje nowszymi, bezpiecznymi odpowiednikami. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.
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
TCHAR.H rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcscat_s |
strcat_s |
_mbscat_s |
wcscat_s |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
strcat_s |
<string.h> |
wcscat_s |
<string.h> lub <wchar.h> |
_mbscat_s |
<mbstring.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
Zobacz przykładowy kod w pliku strcpy_s
, _mbscpy_s
wcscpy_s
.
Zobacz też
Manipulowanie ciągami
strncat
, , _strncat_l
, wcsncat
, _wcsncat_l
, , _mbsncat
_mbsncat_l
strncmp
, , wcsncmp
, , _mbsncmp
_mbsncmp_l
strncpy
, , _strncpy_l
, wcsncpy
, _wcsncpy_l
, , _mbsncpy
_mbsncpy_l
_strnicmp
, , _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strrchr
, , wcsrchr
, , _mbsrchr
_mbsrchr_l
strspn
, , wcsspn
, , _mbsspn
_mbsspn_l