Namensräume
Varianten
Aktionen

wcscat, wcscat_s

Von cppreference.com
< 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 des Wide-Strings, auf den src zeigt, an das Ende des Wide-Strings, auf den dest zeigt, an. Das Wide-Zeichen src[0] ersetzt den Nullterminator am Ende von dest. Der resultierende Wide-String ist nullterminiert. Das Verhalten ist undefiniert, wenn das Zielarray nicht groß genug für den Inhalt von sowohl str als auch dest und den terminierenden Null-Wide-Charakter ist. Das Verhalten ist undefiniert, wenn sich die Strings überlappen.
2) Wie (1), außer dass der Rest des Zielarrays (vom letzten geschriebenen Zeichen bis destsz) mit nicht spezifizierten Werten überschrieben werden kann und 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 Wide-Zeichen von dest
  • eine Trunkierung würde auftreten (der verfügbare Platz am Ende von dest reicht nicht für jedes Wide-Zeichen, einschließlich des Nullterminators, von src aus)
  • Es würde eine Überschneidung zwischen der Quell- und der Zielzeichenkette auftreten
Wie bei allen grenzgeprüften Funktionen ist wcscat_s nur dann garantiert verfügbar, wenn __STDC_LIB_EXT1__ von der Implementierung definiert wird und wenn der Benutzer __STDC_WANT_LIB_EXT1__ mit der ganzzahligen Konstante 1 definiert, bevor <wchar.h> eingebunden wird.

Inhalt

[bearbeiten] Parameter

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

[bearbeiten] Rückgabewert

1) Gibt eine Kopie von dest zurück
2) gibt null bei Erfolg zurück, gibt einen Wert ungleich null bei einem Fehler zurück. Bei einem Fehler wird außerdem L'\0' in dest[0] geschrieben (es sei denn, dest ist ein Nullzeiger oder destsz ist null oder größer als RSIZE_MAX/sizeof(wchar_t)).

[bearbeiten] 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

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

[bearbeiten] Referenzen

  • C17-Standard (ISO/IEC 9899:2018)
  • 7.29.4.3.1 Die Funktion wcscat (S. 315)
  • K.3.9.2.2.1 Die Funktion wcscat_s (S. 466)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.29.4.3.1 Die Funktion wcscat (S. 432)
  • K.3.9.2.2.1 Die Funktion wcscat_s (S. 642-643)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.24.4.3.1 Die Funktion wcscat (S. 378)

[bearbeiten] Siehe auch

hängt eine bestimmte Anzahl breiter Zeichen von einer breiten Zeichenkette an eine andere an
(Funktion) [bearbeiten]
verbindet zwei Strings
(Funktion) [bearbeiten]
(C95)(C11)
kopiert eine breite Zeichenkette in eine andere
(Funktion) [bearbeiten]
C++ Dokumentation für wcscat