strcat_s
, , wcscat_s
_mbscat_s
_mbscat_s_l
Fügt eine Zeichenfolge an. Diese Versionen von strcat
, wcscat
_mbscat
haben Sicherheitsverbesserungen, wie in sicherheitsfeatures im CRT beschrieben.
Wichtig
_mbscat_s
und _mbscat_s_l
können nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
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
Parameter
strDestination
Auf NULL endender Zielzeichenfolgenpuffer.
numberOfElements
Größe des Zielzeichenfolgenpuffers.
strSource
Auf NULL endender Quellzeichenfolgepuffer.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Null, wenn erfolgreich, ein Fehlercode, wenn ein Fehler auftritt.
Fehlerbedingungen
strDestination |
numberOfElements |
strSource |
Rückgabewert | Inhalt von strDestination |
---|---|---|---|---|
NULL oder nicht abgeschlossen |
any | any | EINVAL |
nicht geändert |
any | any | NULL |
EINVAL |
strDestination[0] , auf 0 festgelegt. |
any | 0 oder zu klein | any | ERANGE |
strDestination[0] , auf 0 festgelegt. |
Hinweise
Die strcat_s
-Funktion fügt strSource
an strDestination
an und beendet die Ergebniszeichenfolge mit einem Nullzeichen. Das erste Zeichen von strSource
überschreibt das abschließende Nullzeichen von strDestination
. Wenn sich Quell- und Zielzeichenfolgen überlappen, ist das Verhalten von strcat_s
undefiniert.
Der zweite Parameter ist die Gesamtgröße des Puffers, nicht die verbleibende Größe:
char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End"); // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect
wcscat_s
und _mbscat_s
sind Breitzeichen- und Multibytezeichenversionen von strcat_s
. Die Argumente und der Rückgabewert wcscat_s
sind Zeichenfolgen mit breitem Zeichen. Die Argumente und der Rückgabewert sind _mbscat_s
Multibyte-Zeichenfolgen. Diese drei Funktionen verhalten sich andernfalls identisch.
Wenn strDestination
es sich um einen Nullzeiger handelt oder kein Null-Beendeter ist oder strSource
wenn es sich um einen NULL
Zeiger handelt oder die Zielzeichenfolge zu klein ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen EINVAL
zurück und stellen errno
auf EINVAL
ein.
Die Versionen von Funktionen mit dem _l
Suffix weisen dasselbe Verhalten auf, verwenden jedoch den Gebietsschemaparameter, der anstelle des aktuellen Gebietsschemas übergeben wird. Weitere Informationen finden Sie unter Locale.
In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können automatisch Rückschlüsse auf die Pufferlänge ziehen (wodurch kein Größenargument mehr angegeben werden muss), und sie können automatisch die älteren, nicht sicheren Funktionen durch ihre neueren, sicheren Entsprechungen ersetzen. Weitere Informationen finden Sie unter Secure Template Overloads.
Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThreshold
zum Deaktivieren dieses Verhaltens .
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcscat_s |
strcat_s |
_mbscat_s |
wcscat_s |
Anforderungen
Routine | Erforderlicher Header |
---|---|
strcat_s |
<string.h> |
wcscat_s |
<string.h> oder <wchar.h> |
_mbscat_s |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Sehen Sie sich das Codebeispiel in strcpy_s
, wcscpy_s
, _mbscpy_s
.
Siehe auch
Zeichenfolgenbearbeitung
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