Namespaces
Variants

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

From cppreference.net
std::basic_string
basic_string & replace ( size_type pos, size_type count,
const basic_string & str ) ;
(1) (constexpr depuis C++20)
basic_string & replace ( const_iterator first, const_iterator last,
const basic_string & str ) ;
(2) (constexpr depuis C++20)
(3)
basic_string & replace ( size_type pos, size_type count,

const basic_string & str,

size_type pos2, size_type count2 ) ;
(jusqu'en C++14)
basic_string & replace ( size_type pos, size_type count,

const basic_string & str,

size_type pos2, size_type count2 = npos ) ;
(depuis C++14)
(constexpr depuis C++20)
basic_string & replace ( size_type pos, size_type count,
const CharT * cstr, size_type count2 ) ;
(4) (constexpr depuis C++20)
basic_string & replace ( const_iterator first, const_iterator last,
const CharT * cstr, size_type count2 ) ;
(5) (constexpr depuis C++20)
basic_string & replace ( size_type pos, size_type count,
const CharT * cstr ) ;
(6) (constexpr depuis C++20)
basic_string & replace ( const_iterator first, const_iterator last,
const CharT * cstr ) ;
(7) (constexpr depuis C++20)
basic_string & replace ( size_type pos, size_type count,
size_type count2, CharT ch ) ;
(8) (constexpr depuis C++20)
basic_string & replace ( const_iterator first, const_iterator last,
size_type count2, CharT ch ) ;
(9) (constexpr depuis C++20)
template < class InputIt >

basic_string & replace ( const_iterator first, const_iterator last,

InputIt first2, InputIt last2 ) ;
(10) (constexpr depuis C++20)
basic_string & replace ( const_iterator first, const_iterator last,
std:: initializer_list < CharT > ilist ) ;
(11) (depuis C++11)
(constexpr depuis C++20)
template < class StringViewLike >

basic_string & replace ( size_type pos, size_type count,

const StringViewLike & t ) ;
(12) (depuis C++17)
(constexpr depuis C++20)
template < class StringViewLike >

basic_string & replace ( const_iterator first, const_iterator last,

const StringViewLike & t ) ;
(13) (depuis C++17)
(constexpr depuis C++20)
template < class StringViewLike >

basic_string & replace ( size_type pos, size_type count,
const StringViewLike & t,

size_type pos2, size_type count2 = npos ) ;
(14) (depuis C++17)
(constexpr depuis C++20)

Remplace les caractères dans la plage [ begin ( ) + pos , begin ( ) + std:: min ( pos + count, size ( ) ) ) ou [ first , last ) par les caractères donnés.

1,2) Ces caractères sont remplacés par str .
3) Ces caractères sont remplacés par une sous-chaîne [ pos2 , std:: min ( pos2 + count2, str. size ( ) ) ) de str .
4,5) Ces caractères sont remplacés par les caractères dans la plage [ cstr , cstr + count2 ) .
Si [ cstr , cstr + count2 ) n'est pas un intervalle valide , le comportement est indéfini.
6,7) Ces caractères sont remplacés par les caractères dans la plage [ cstr , cstr + Traits :: length ( cstr ) ) .
8,9) Ces caractères sont remplacés par count2 copies de ch .
10) Ces caractères sont remplacés par les caractères dans la plage [ first2 , last2 ) comme par replace ( first, last, basic_string ( first2, last2, get_allocator ( ) ) ) .
11) Ces caractères sont remplacés par les caractères dans ilist .
12,13) Convertit implicitement t en une vue de chaîne sv comme si par std:: basic_string_view < CharT, Traits > sv = t ; , puis ces caractères sont remplacés par les caractères de sv .
Ces surcharges participent à la résolution de surcharge seulement si std:: is_convertible_v < const StringViewLike & ,
std:: basic_string_view < CharT, Traits >>
est true et std:: is_convertible_v < const StringViewLike & , const CharT * > est false .
14) Convertit implicitement t en une vue de chaîne sv comme si par std:: basic_string_view < CharT, Traits > sv = t ; , puis ces caractères sont remplacés par les caractères de la sous-vue sv. substr ( pos2, count2 ) .
Cette surcharge participe à la résolution de surcharge seulement si std:: is_convertible_v < const StringViewLike & ,
std:: basic_string_view < CharT, Traits >>
est true et std:: is_convertible_v < const StringViewLike & , const CharT * > est false .

Si [ begin ( ) , first ) ou [ first , last ) n'est pas un intervalle valide , le comportement est indéfini.

Table des matières

Paramètres

pos - début de la sous-chaîne qui va être remplacée
count - longueur de la sous-chaîne qui va être remplacée
first, last - plage de caractères qui va être remplacée
str - chaîne à utiliser pour le remplacement
pos2 - début de la sous-chaîne de remplacement
count2 - nombre de caractères à utiliser pour le remplacement
cstr - pointeur vers la chaîne de caractères à utiliser pour le remplacement
ch - valeur du caractère à utiliser pour le remplacement
first2, last2 - plage de caractères à utiliser pour le remplacement
ilist - liste d'initialisation avec les caractères à utiliser pour le remplacement
t - objet (convertible en std::basic_string_view ) avec les caractères à utiliser pour le remplacement
Exigences de type
-
InputIt doit satisfaire aux exigences de LegacyInputIterator .

Valeur de retour

* this .

Exceptions

1) Lance std::out_of_range si pos > size ( ) .
3) Lance std::out_of_range si pos > size ( ) ou pos2 > str. size ( ) .
4,6,8) Lance std::out_of_range si pos > size ( ) .
12,14) Lance std::out_of_range si pos > size ( ) .

Si l'opération devait entraîner le dépassement de size() au-delà de max_size() , lève std::length_error .

Si une exception est levée pour quelque raison que ce soit, ces fonctions n'ont aucun effet ( strong exception safety guarantee ).

Exemple

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 publié Comportement corrigé
LWG 847 C++98 aucune garantie de sécurité des exceptions n'était présente garantie de sécurité forte des exceptions ajoutée
LWG 1323 C++98 les types de first et last étaient iterator modifiés en const_iterator
LWG 2946 C++17 les surcharges (12,13) provoquaient une ambiguïté dans certains cas évitée en les rendant templates

Voir aussi

remplace une partie spécifiée d'une chaîne par une plage de caractères
(fonction membre publique)
remplace les occurrences d'une expression régulière par un texte de remplacement formaté
(modèle de fonction)
remplace toutes les valeurs satisfaisant des critères spécifiques par une autre valeur
(modèle de fonction)