Sdílet prostřednictvím


strcat_s, wcscat_s, _mbscat_s, _mbscat_s_l

Připojí řetězec. Tyto verze strcat, wcscatmají _mbscat vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Důležité

_mbscat_sa _mbscat_s_l nelze je použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

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
Vyrovnávací paměť cílového řetězce ukončená hodnotou null.

numberOfElements
Velikost vyrovnávací paměti cílového řetězce.

strSource
Vyrovnávací paměť zdrojového řetězce s ukončenou hodnotou null.

locale
Národní prostředí, které se má použít.

Vrácená hodnota

Nula v případě úspěchu; kód chyby při selhání.

Chybové podmínky

strDestination numberOfElements strSource Vrácená hodnota Obsah strDestination
NULL nebo neukončeno jakékoliv jakékoliv EINVAL neupraveno
jakékoliv jakékoliv NULL EINVAL strDestination[0] nastaveno na hodnotu 0
jakékoliv 0 nebo příliš malé jakékoliv ERANGE strDestination[0] nastaveno na hodnotu 0

Poznámky

Funkce strcat_s připojí strSourcestrDestination a ukončí výsledný řetězec znakem null. Počáteční znak strSource přepsání ukončující znak null znaku strDestination. Chování strcat_s není definováno, pokud se zdrojový a cílový řetězec překrývají.

Druhým parametrem je celková velikost vyrovnávací paměti, nikoli zbývající velikost:

char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End");               // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect

wcscat_sa _mbscat_s jsou širokoznakové a vícebajtové verze .strcat_s Argumenty a návratová hodnota jsou řetězce širokého znaku wcscat_s . Argumenty a návratová _mbscat_s hodnota jsou řetězce s vícebajtovými znaky. Tyto tři funkce se chovají stejně jinak.

Pokud strDestination je ukazatel null nebo není ukončen, nebo je-li strSource ukazatel, nebo pokud je NULL cílový řetězec příliš malý, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce se vrátí EINVAL a nastaví errno na EINVAL.

Verze funkcí, které mají příponu _l , mají stejné chování, ale místo aktuálního národního prostředí použijte parametr národního prostředí, který se předává. Další informace naleznete v tématu Národní prostředí.

V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou automaticky odvodit délku vyrovnávací paměti (eliminuje potřebu zadat argument velikosti) a mohou automaticky nahradit starší, nezabezpečené funkce jejich novějšími zabezpečenými protějšky. Další informace naleznete v tématu Přetížení šablon zabezpečení.

Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

TCHAR.H Rutinní _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tcscat_s strcat_s _mbscat_s wcscat_s

Požadavky

Rutina Požadovaný hlavičkový soubor
strcat_s <string.h>
wcscat_s <string.h> nebo <wchar.h>
_mbscat_s <mbstring.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Viz příklad kódu v strcpy_s, wcscpy_s, _mbscpy_s.

Viz také

Manipulace s řetězci
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