Namespaces
Variants

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

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

Copie une sous-chaîne [pospos + 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 [possize()).

La chaîne de caractères résultante n'est pas terminée par un caractère nul.

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>)
copie une plage d'éléments vers un nouvel emplacement
(modèle de fonction & objet fonction d'algorithme)
copie un tampon vers un autre
(fonction)