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 einen Teilstring
[
pos
,
pos
+
count
)
in den Zeichenstring, auf den
dest
zeigt. Wenn der angeforderte Teilstring über das Ende des Strings hinausgeht, oder wenn
count
==
npos
ist, wird der kopierte Teilstring
[
pos
,
size()
)
sein.
Der resultierende Zeichenstring ist nicht nullterminiert.
Inhaltsverzeichnis |
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 einen Teilstring zurück
(öffentliche Elementfunktion) |
|
|
kopiert Zeichen
(öffentliche Elementfunktion von
std::basic_string_view<CharT,Traits>
)
|
|
|
(C++11)
|
kopiert einen Elementbereich an eine neue Position
(Funktionstemplate) |
|
kopiert einen Puffer in einen anderen
(Funktion) |