Namespaces
Variants

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

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