Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dołącza ciąg. Te wersje programu wcscat_mbscatstrcat, mają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Ważne
_mbscat_snie 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_si _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_swcscpy_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