strcat_s
, wcscat_s
, , _mbscat_s
_mbscat_s_l
Připojí řetězec. Tyto verze strcat
, wcscat
mají _mbscat
vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.
Důležité
_mbscat_s
a _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í strSource
strDestination
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_s
a _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 rutina |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_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