Namespaces
Variants

std::basic_string<CharT,Traits,Allocator>::copy

Von de.cppreference.net
 
 
 
std::basic_string
 
size_type copy( CharT* dest, size_type count, size_type pos = 0 ) const;
(constexpr seit C++20)

Kopiert eine Teilzeichenkette [pos, pos + count) in die Zeichenkette, auf die dest zeigt. Wenn die angeforderte Teilzeichenkette über das Ende der Zeichenkette hinausreicht, oder wenn count == npos ist, wird die kopierte Teilzeichenkette [pos, size()).

Die resultierende Zeichenkette wird nicht mit einem Nullzeichen abgeschlossen.

Parameter

dest - Zeiger auf die Zielzeichenkette
count - Länge der Teilzeichenkette
pos - Position des ersten einzubeziehenden Zeichens

Rückgabewert

Anzahl der kopierten Zeichen.

Exceptions

std::out_of_range wenn pos > size ( ) .

Wenn aus irgendeinem Grund eine Exception ausgelöst wird, hat diese Funktion keine Wirkung ( strong exception safety guarantee ).

Komplexität

Linear in count .

Beispiel

#include <iostream>
#include <string>
int main()
{
    std::string foo("WINE");
    // Die Initialisierung mit geschweiften Klammern setzt alle Zeichen auf 0,
    // wodurch ein Nullterminator bereitgestellt wird
    char bar[4]{};
    // Das letzte Zeichen nicht kopieren, um Nullterminierung zu garantieren
    foo.copy(bar, sizeof bar - 1);
    std::cout << bar << '\n'; // erfordert, dass bar nullterminiert ist
}

Ausgabe:

WIN

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 847 C++98 es gab keine Ausnahmesicherheitsgarantie starke Ausnahmesicherheitsgarantie hinzugefügt

Siehe auch

gibt eine Teilzeichenkette zurück
(öffentliche Elementfunktion)
kopiert Zeichen
(öffentliche Elementfunktion von std::basic_string_view<CharT,Traits>)
kopiert einen Bereich von Elementen an einen neuen Speicherort
(Funktionsschablone & Algorithmus-Funktionsobjekt)
kopiert einen Puffer in einen anderen
(Funktion)