Namespaces
Variants

wcscat, wcscat_s

From cppreference.net
< c ‎ | string ‎ | wide
Definiert in Header <wchar.h>
(1)
wchar_t * wcscat ( wchar_t * dest, const wchar_t * src ) ;
(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 breiten Zeichenkette, auf die src zeigt, an das Ende der breiten Zeichenkette an, auf die dest zeigt. Das breite Zeichen src[0] ersetzt den Nullterminator am Ende von dest . Die resultierende breite Zeichenkette ist nullterminiert. Das Verhalten ist undefiniert, wenn das Zielarray nicht groß genug für die Inhalte von sowohl str als auch dest und den abschließenden Nullbreitzeichen ist. Das Verhalten ist undefiniert, wenn die Zeichenketten überlappen.
2) Gleich wie (1) , außer dass es den Rest des Zielarrays (ab dem letzten geschriebenen Zeichen bis destsz ) mit nicht spezifizierten Werten überschreiben kann und dass die folgenden Fehler zur Laufzeit erkannt werden und die aktuell installierte Constraint-Handler -Funktion aufrufen:
  • src oder dest ist ein Nullzeiger
  • destsz ist null oder größer als RSIZE_MAX / sizeof ( wchar_t )
  • Es gibt keinen Nullterminator in den ersten destsz Breitzeichen von dest
  • Trunkierung würde auftreten (der verfügbare Platz am Ende von dest würde nicht jedes Breitzeichen, einschließlich des Nullterminators, von src aufnehmen)
  • Überlappung würde zwischen Quell- und Zielzeichenfolgen auftreten
Wie bei allen grenzprüfenden Funktionen ist wcscat_s nur garantiert verfügbar, wenn __STDC_LIB_EXT1__ durch die Implementierung definiert ist und wenn der Benutzer __STDC_WANT_LIB_EXT1__ auf die Integer-Konstante 1 setzt, bevor <wchar.h> eingebunden wird.

Inhaltsverzeichnis

Parameter

dest - Zeiger auf den nullterminierten Breitzeichen-String, an den angehängt werden soll
src - Zeiger auf den nullterminierten Breitzeichen-String, von dem kopiert werden soll
destsz - maximale Anzahl der zu schreibenden Zeichen, typischerweise die Größe des Zielpuffers

Rückgabewert

1) gibt eine Kopie von dest zurück
2) gibt bei Erfolg Null zurück, gibt bei Fehler einen Wert ungleich Null zurück. Außerdem wird bei Fehler L ' \0 ' in dest [ 0 ] geschrieben (sofern dest kein Nullzeiger ist oder destsz nicht Null oder größer als RSIZE_MAX / sizeof ( wchar_t ) ist).

Beispiel

#include <wchar.h> 
#include <stdio.h>
#include <locale.h>
int main(void) 
{
    wchar_t str[50] = L"Земля, прощай.";
    wcscat(str, L" ");
    wcscat(str, L"В добрый путь.");
    setlocale(LC_ALL, "en_US.utf8");
    printf("%ls", str);
}

Ausgabe:

Земля, прощай. В добрый путь.

Referenzen

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

Siehe auch

hängt eine bestimmte Anzahl von Breitzeichen von einer Breitzeichenkette an eine andere an
(Funktion)
verkettet zwei Zeichenketten
(Funktion)
(C95) (C11)
kopiert eine Breitzeichenkette in eine andere
(Funktion)