std::basic_string<CharT,Traits,Allocator>:: copy
|
size_type copy
(
CharT
*
dest, size_type count, size_type pos
=
0
)
const
;
|
(constexpr depuis C++20) | |
Copie une sous-chaîne
[
pos
,
pos
+
count
)
vers la chaîne de caractères pointée par
dest
. Si la sous-chaîne demandée dépasse la fin de la chaîne, ou si
count
==
npos
, la sous-chaîne copiée est
[
pos
,
size()
)
.
La chaîne de caractères résultante n'est pas terminée par un caractère nul.
Table des matières |
Paramètres
| dest | - | pointeur vers la chaîne de caractères de destination |
| count | - | longueur de la sous-chaîne |
| pos | - | position du premier caractère à inclure |
Valeur de retour
Nombre de caractères copiés.
Exceptions
std::out_of_range si pos > size ( ) .
Si une exception est levée pour quelque raison que ce soit, cette fonction n'a aucun effet ( strong exception safety guarantee ).
Complexité
Linéaire en count .
Exemple
#include <iostream> #include <string> int main() { std::string foo("WINE"); // l'initialisation par accolades initialise tous les caractères à 0, // fournissant un terminateur nul char bar[4]{}; // ne pas copier le dernier caractère, pour garantir la null-termination foo.copy(bar, sizeof bar - 1); std::cout << bar << '\n'; // nécessite que bar soit null-terminated }
Sortie :
WIN
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement tel que publié | Comportement correct |
|---|---|---|---|
| LWG 847 | C++98 | il n'y avait aucune garantie de sûreté des exceptions | garantie de sûreté forte des exceptions ajoutée |
Voir aussi
|
retourne une sous-chaîne
(fonction membre publique) |
|
|
copie des caractères
(fonction membre publique de
std::basic_string_view<CharT,Traits>
)
|
|
|
(C++11)
|
copie une plage d'éléments vers un nouvel emplacement
(modèle de fonction) |
|
copie un tampon vers un autre
(fonction) |