wcscat, wcscat_s
Von de.cppreference.net
| Definiert in Header <wchar.h>
|
||
wchar_t* wcscat( wchar_t* dest, const wchar_t* src );
|
(1) | (seit C95) (bis C99) |
wchar_t* wcscat( wchar_t* restrict dest, const wchar_t* restrict src );
|
(seit C99) | |
errno_t wcscat_s( wchar_t* restrict dest, rsize_t destsz,
const wchar_t* restrict src );
|
(2) | (seit C11) |
1) Hängt eine Kopie der Breitzeichenkette, auf die
src zeigt, an das Ende der Breitzeichenkette, auf die dest zeigt, an. Das Breitzeichen src[0] ersetzt den Nullterminator am Ende von dest. Die resultierende Breitzeichenkette wird nullterminiert. Das Verhalten ist undefiniert, wenn das Ziel-Array nicht groß genug für den Inhalt von src und dest sowie des abschließenden Null-Breitzeichens ist. Das Verhalten ist undefiniert, wenn sich die Zeichenketten überschneiden.2) Gleicht (1), außer dass es den Rest des Ziel-Arrays (ab dem zuletzt geschriebenen Zeichen bis
destsz) mit nicht spezifizierten Werten überschreiben kann und dass die folgenden Fehler zur Laufzeit erkannt werden und die derzeit installierte Constraint-Handler-Funktion aufrufen:
srcoderdestist ein Nullpointerdestszist null oder größer alsRSIZE_MAX / sizeof(wchar_t)- es gibt keinen Nullterminator in den ersten
destszBreitzeichen vondest - Abschneiden würde auftreten (der verfügbare Platz am Ende von
destwürde nicht jedes Breitzeichen, einschließlich des Nullterminators, vonsrcfassen) - Überschneidung würde zwischen Quell- und Ziel-Strings auftreten
Wie bei allen grenzgeprüften Funktionen ist
wcscat_s nur dann garantiert verfügbar, wenn __STDC_LIB_EXT1__ durch die Implementierung definiert ist und der Benutzer __STDC_WANT_LIB_EXT1__ auf die ganzzahlige Konstante 1 setzt, bevor er <wchar.h> einbindet.Parameter
| dest | - | Zeiger auf die nullterminierte Breitzeichenkette, an die angehängt werden soll |
| src | - | Zeiger auf die nullterminierte Breitzeichenkette, von der kopiert werden soll |
| destsz | - | maximale Anzahl von zu schreibenden Zeichen, typischerweise die Größe des Zielpuffers |
Rückgabewert
1) gibt eine Kopie von
dest zurück2)
L'\0' gibt bei Erfolg Null zurück, bei Fehler einen von Null verschiedenen Wert. Außerdem wird bei Fehler dest[0] in dest geschrieben (es sei denn, destsz ist ein Nullpointer oder RSIZE_MAX / sizeof(wchar_t) ist null oder größer als ).
Beispiel
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wchar_t str[50] = L"Земля, прощай.";
wcscat(str, L" ");
wcscat(str, L"В добрый путь.");
setlocale(LC_ALL, "en_US.utf8");
printf("%ls", str);
}
Diesen Code ausführen
Земля, прощай. В добрый путь.
Ausgabe:
- Referenzen
- C23-Standard (ISO/IEC 9899:2024):
- 7.31.4.3.1 Die wcscat-Funktion (S. 439)
- K.3.9.3.2.1 Die wcscat_s-Funktion (S. 665-666)
- C17-Standard (ISO/IEC 9899:2018):
- 7.29.4.3.1 Die wcscat-Funktion (S. 315)
- K.3.9.2.2.1 Die wcscat_s-Funktion (S. 466)
- C11-Standard (ISO/IEC 9899:2011):
- 7.29.4.3.1 Die wcscat-Funktion (S. 432)
- K.3.9.2.2.1 Die wcscat_s-Funktion (S. 642-643)
- C99-Standard (ISO/IEC 9899:1999):
7.24.4.3.1 Die wcscat-Funktion (S. 378)
wcsncat_s(C95) |
(C11) hängt eine bestimmte Anzahl von Breitzeichen von einer Breitzeichenkette an eine andere an |
strcat_s |
(C11) verkettet zwei Zeichenketten |
wcscpy_s(C95) |
(C11) kopiert eine Breitzeichenkette in eine andere |
(Funktion)C++-Dokumentation für
| |