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.
Wichtig |
---|
_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
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