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 Breitzeichenzeichenfolgen. Die Argumente und der Rückgabewert _mbscat_s sind Multibyte-Zeichenzeichenfolgen. Diese drei Funktionen verhalten sich andernfalls identisch.

Wenn strDestination es sich um einen Nullzeiger handelt oder nicht null beendet strSource ist oder wenn es sich um einen NULL Zeiger handelt oder wenn 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 "Sichere Vorlagenüberladungen".

Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im globalen Zustand im CRT.

Generische Textroutinezuordnungen

TCHAR.H Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcscat_s strcat_s _mbscat_s wcscat_s

Anforderungen

-Routine zurückgegebener Wert 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 Compatibility.

Beispiel

Sehen Sie sich das Codebeispiel in strcpy_s, wcscpy_s, _mbscpy_s.

Weitere Informationen

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