std::basic_string<CharT,Traits,Allocator>::replace
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) |
basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 );
|
(3) | (jusqu'à 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.
str.[pos2, std::min(pos2 + count2, str.size())) de str.[cstr, cstr + count2).[cstr, cstr + count2) n'est pas une plage valide, le comportement est indéfini.[cstr, cstr + Traits::length(cstr)).count2 copies de ch.[first2, last2) comme par replace(first, last, basic_string(first2, last2, get_allocator())).ilist.t en une vue de chaîne sv comme par std::basic_string_view<CharT, Traits> sv = t;, puis ces caractères sont remplacés par les caractères de sv.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.t en une vue de chaîne sv comme 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).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 une plage valide, le comportement est indéfini.
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
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
|
Cette section est incomplète
Raison : aucun 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
(C++23) |
remplace une partie spécifiée d'une chaîne par une séquence de caractères (fonction membre publique) |
(C++11) |
remplace les occurrences d'une expression régulière par un texte de remplacement formaté (modèle de fonction) |
| remplace toutes les valeurs satisfaisant un critère spécifique par une autre valeur (modèle de fonction & objet fonction d'algorithme) | |
(C++20)(C++20) |