Namensräume
Varianten
Aktionen

std::wcsncpy

Von cppreference.com
< cpp‎ | string‎ | wide
 
 
 
 
Definiert in Header <cwchar>
wchar_t* wcsncpy( wchar_t* dest, const wchar_t* src, std::size_t count );

Kopiert maximal count Zeichen der Wide-String, auf den src zeigt (einschließlich des terminierenden Null-Wide-Zeichens), in ein Wide-Character-Array, auf das dest zeigt.

Wenn count erreicht wird, bevor der gesamte String src kopiert wurde, ist das resultierende Wide-Character-Array nicht nullterminiert.

Wenn nach dem Kopieren des terminierenden Null-Wide-Zeichens aus src count nicht erreicht ist, werden zusätzliche Null-Wide-Zeichen nach dest geschrieben, bis insgesamt count Zeichen geschrieben wurden.

Wenn sich die Strings überlappen, ist das Verhalten undefiniert.

Inhalt

[edit] Parameter

dest - Zeiger auf das Wide-Zeichen-Array, in das kopiert werden soll
src - Zeiger auf den zu kopierenden Wide-String
zählt - maximale Anzahl von zu kopierenden Zeichen

[edit] Rückgabewert

dest

[edit] Hinweise

Bei typischem Gebrauch ist count die Größe des Zielarrays.

[edit] Beispiel

#include <cwchar>
#include <iostream>
 
int main()
{
    const wchar_t src[] = L"hi";
    wchar_t dest[6] = {L'a', L'b', L'c', L'd', L'e', L'f'};
 
    std::wcsncpy(dest, src, 5); // this will copy 'hi' and repeat \0 three times
 
    std::wcout << "The contents of dest are: ";
    for (const wchar_t c : dest)
    {
        if (c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

Ausgabe

The contents of dest are: h i \0 \0 \0 f

[edit] Siehe auch

kopiert eine breite Zeichenkette in eine andere
(Funktion) [bearbeiten]
kopiert eine bestimmte Anzahl breiter Zeichen zwischen zwei nicht überlappenden Arrays
(Funktion) [bearbeiten]
kopiert eine bestimmte Anzahl von Zeichen von einem String in einen anderen
(Funktion) [bearbeiten]
C-Dokumentation für wcsncpy