Namespaces
Variants

wcscat, wcscat_s

Von de.cppreference.net
< c | string | wide
 
 
 
 
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:
  • src oder dest ist ein Nullpointer
  • destsz ist null oder größer als RSIZE_MAX / sizeof(wchar_t)
  • es gibt keinen Nullterminator in den ersten destsz Breitzeichen von dest
  • Abschneiden würde auftreten (der verfügbare Platz am Ende von dest würde nicht jedes Breitzeichen, einschließlich des Nullterminators, von src fassen)
  • Ü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

).

#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
(C11)
verkettet zwei Zeichenketten
wcscpy_s(C95)
(C11)
kopiert eine Breitzeichenkette in eine andere
(Funktion)C++-Dokumentation für
wcscat