Freigeben über


strcat_s, wcscat_s, _mbscat_s

Fügen Sie eine Zeichenfolge an.Diese sind Versionen von strcat, wcscat, _mbscat mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.

Wichtiger HinweisWichtig

_mbscat_s kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW.

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 ); 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

Parameter

  • strDestination
    Auf NULL endende Zielzeichenfolgenpuffer.

  • numberOfElements
    Größe des Zielzeichenfolgenpuffers.

  • strSource
    Auf NULL endende Quellzeichenfolgenpuffer.

Rückgabewert

Null erfolgreich, wenn ein Fehlercode auf Fehler.

Fehlerbedingungen

strDestination

numberOfElements

strSource

Rückgabewert

Inhalt von strDestination

NULL oder nicht abgeschlossenen

any

any

EINVAL

nicht geändert

any

any

NULL

EINVAL

strDestination[0] auf 0 festgelegt

any

0 oder zu kleines

any

ERANGE

strDestination[0] auf 0 festgelegt

Hinweise

Die Funktion strcat_s fügt strSource zu strDestination an und beendet die Ergebniszeichenfolge mit einem NULL-Zeichen.Das erste Zeichen von strSource überschreibt das NULL von strDestination.Das Verhalten von strcat_s ist nicht definiert, wenn die Quell- und Zielzeichenfolgen überschneiden.

Der - zweite Parameter ist die Gesamtgröße des Puffers, nicht die übrigen 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 Breitzeich und Mehrbytezeichen-Versionen von strcat_s.Die Argumente und der Rückgabewert von wcscat_s sind Breitzeichen-Zeichenfolgen; die von _mbscat_s sind Mehrbyte-Zeichenfolgen.Diese drei Funktionen verhalten sich andernfalls identisch.

Wenn strDestination ein NULL-Zeiger ist, oder nicht auf NULL endende ist oder, wenn strSource ein NULL Zeiger ist oder wenn die Zielzeichenfolge zu klein ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen EINVAL zurück und legen errno auf EINVAL fest.

In C++ mithilfe dieser Funktionen wird durch Vorlagenüberladungen vereinfacht; die Überladungen können die Pufferlänge (die Anforderung automatisch beseitigend ableiten, ein Größenargument anzugeben) und können die älteren, nicht-sicheren Funktionen durch ihre späteren, sicheren Entsprechungen automatisch ersetzen.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.

Die Debugversionen dieser Funktionen füllen zuerst den Puffer mit den Wert aus.Um dieses Verhalten zu deaktivieren, verwenden Sie _CrtSetDebugFillThreshold.

Zuordnung generische Textroutinen

TCHAR.H-Routine

_UNICODE & _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>

So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

Beispiel

Siehe das Codebeispiel in strcpy_s, wcscpy_s, _mbscpy_s.

.NET Framework-Entsprechung

System::String::Concat

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

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