std::basic_string<CharT,Traits,Allocator>::replace
basic_string& replace( size_type pos, size_type count,
const basic_string& str );
|
(1) | (constexpr seit C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const basic_string& str );
|
(2) | (constexpr seit C++20) |
basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 );
|
(3) | (bis C++14) |
basic_string& replace( size_type pos, size_type count,
const basic_string& str,
size_type pos2, size_type count2 = npos );
|
(seit C++14) (constexpr seit C++20) |
|
basic_string& replace( size_type pos, size_type count,
const CharT* cstr, size_type count2 );
|
(4) | (constexpr seit C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr, size_type count2 );
|
(5) | (constexpr seit C++20) |
basic_string& replace( size_type pos, size_type count,
const CharT* cstr );
|
(6) | (constexpr seit C++20) |
basic_string& replace( const_iterator first, const_iterator last,
const CharT* cstr );
|
(7) | (constexpr seit C++20) |
basic_string& replace( size_type pos, size_type count,
size_type count2, CharT ch );
|
(8) | (constexpr seit C++20) |
basic_string& replace( const_iterator first, const_iterator last,
size_type count2, CharT ch );
|
(9) | (constexpr seit C++20) |
template< class InputIt >
basic_string& replace( const_iterator first, const_iterator last,
InputIt first2, InputIt last2 );
|
(10) | (constexpr seit C++20) |
basic_string& replace( const_iterator first, const_iterator last,
std::initializer_list<CharT> ilist );
|
(11) | (seit C++11) (constexpr seit C++20) |
template< class StringViewLike >
basic_string& replace( size_type pos, size_type count,
const StringViewLike& t );
|
(12) | (seit C++17) (constexpr seit C++20) |
template< class StringViewLike >
basic_string& replace( const_iterator first, const_iterator last,
const StringViewLike& t );
|
(13) | (seit C++17) (constexpr seit 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) | (seit C++17) (constexpr seit C++20) |
Ersetzt die Zeichen im Bereich [begin() + pos, begin() + std::min(pos + count, size())) oder [first, last) durch angegebene Zeichen.
str ersetzt.[pos2, std::min(pos2 + count2, str.size())) von str ersetzt.[cstr, cstr + count2) ersetzt.[cstr, cstr + count2) kein gültiger Bereich ist, ist das Verhalten undefiniert.[cstr, cstr + Traits::length(cstr)) ersetzt.count2 Kopien von ch ersetzt.[first2, last2) wie durch replace(first, last, basic_string(first2, last2, get_allocator())) ersetzt.ilist ersetzt.t implizit in eine Zeichenkettenansicht sv als ob durch std::basic_string_view<CharT, Traits> sv = t;, dann werden diese Zeichen durch die Zeichen aus sv ersetzt.std::is_convertible_v<const StringViewLike&,std::basic_string_view<CharT, Traits>> true ist und std::is_convertible_v<const StringViewLike&, const CharT*> false ist.t implizit in eine Zeichenkettenansicht sv als ob durch std::basic_string_view<CharT, Traits> sv = t;, dann werden diese Zeichen durch die Zeichen aus der Teilansicht sv.substr(pos2, count2) ersetzt.std::is_convertible_v<const StringViewLike&,std::basic_string_view<CharT, Traits>> true ist und std::is_convertible_v<const StringViewLike&, const CharT*> false ist.Wenn [begin(), first) oder [first, last) kein gültiger Bereich ist, ist das Verhalten undefiniert.
Parameter
| pos | - | Anfang der zu ersetzenden Teilzeichenkette |
| count | - | Länge der zu ersetzenden Teilzeichenkette |
| first, last | - | Bereich der zu ersetzenden Zeichen |
| str | - | Zeichenkette für den Ersatz |
| pos2 | - | Anfang der Ersatz-Teilzeichenkette |
| count2 | - | Anzahl der zu ersetzenden Zeichen |
| cstr | - | Zeiger auf die Ersatz-Zeichenkette |
| ch | - | Zeichenwert für den Ersatz |
| first2, last2 | - | Bereich der Ersatzzeichen |
| ilist | - | Initialisierungsliste mit den Ersatzzeichen |
| t | - | Objekt (konvertierbar zu std::basic_string_view ) mit den Ersatzzeichen |
| Typanforderungen | ||
-
InputIt
muss die Anforderungen von
LegacyInputIterator
erfüllen.
|
||
Rückgabewert
* this .
Ausnahmen
Falls die Operation dazu führen würde, dass
size()
die
max_size()
überschreitet, wird
std::length_error
geworfen.
Wenn aus irgendeinem Grund eine Exception ausgelöst wird, haben diese Funktionen keine Wirkung ( strong exception safety guarantee ).
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 847 | C++98 | es gab keine Exception-Sicherheitsgarantie | starke Exception-Sicherheitsgarantie hinzugefügt |
| LWG 1323 | C++98 |
die Typen von
first
und
last
waren
iterator
|
geändert zu
const_iterator
|
| LWG 2946 | C++17 | Überladungen (12,13) verursachten in einigen Fällen Mehrdeutigkeit | vermieden durch Template-Implementierung |
Siehe auch
(C++23) |
ersetzt einen bestimmten Teil einer Zeichenfolge durch einen Bereich von Zeichen (öffentliche Elementfunktion) |
(C++11) |
ersetzt Vorkommen eines regulären Ausdrucks durch formatierten Ersatztext (Funktionsschablone) |
| ersetzt alle Werte, die bestimmte Kriterien erfüllen, durch einen anderen Wert (Funktionsschablone & Algorithmusfunktionsobjekt) | |
(C++20)(C++20) |