strcat, wcscat, _mbscat
Append a string. More secure versions of these functions are available; see strcat_s, wcscat_s, _mbscat_s.
char *strcat( char *strDestination, const char *strSource ); wchar_t *wcscat( wchar_t *strDestination, const wchar_t *strSource ); unsigned char *_mbscat( unsigned char *strDestination, const unsigned char *strSource ); template <size_t size> char *strcat( char (&strDestination)[size], const char *strSource ); // C++ only template <size_t size> wchar_t *wcscat( wchar_t (&strDestination)[size], const wchar_t *strSource ); // C++ only template <size_t size> unsigned char *_mbscat( unsigned char (&strDestination)[size], const unsigned char *strSource ); // C++ only
The strcat function appends strSource to strDestination and terminates the resulting string with a null character. The initial character of strSource overwrites the terminating null character of strDestination. The behavior of strcat is undefined if the source and destination strings overlap.
Security Note: |
|---|
Because strcat does not check for sufficient space in strDestination before appending strSource, it is a potential cause of buffer overruns. Consider using strncat instead. |
wcscat and _mbscat are wide-character and multibyte-character versions of strcat. The arguments and return value of wcscat are wide-character strings; those of _mbscat are multibyte-character strings. These three functions behave identically otherwise.
In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. For more information, see Secure Template Overloads.
TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined |
|---|---|---|---|
_tcscat | strcat | _mbscat | wcscat |
Routine | Required header |
|---|---|
strcat | <string.h> |
wcscat | <string.h> or <wchar.h> |
_mbscat | <mbstring.h> |
For additional compatibility information, see Compatibility in the Introduction.
Security Note: