std::basic_string<CharT,Traits,Allocator>::copy
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>)
| |
(C++11) |
kopiert einen Bereich von Elementen an einen neuen Speicherort (Funktionsschablone & Algorithmus-Funktionsobjekt) |
(C++20)(C++20) |
|
| kopiert einen Puffer in einen anderen (Funktion) |