Пространства имён
Варианты
Действия

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

Материал из cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
basic_string& replace( size_type pos, size_type count,

                       const basic_string& str );

basic_string& replace( const_iterator first, const_iterator last,

                       const basic_string& str );
(1)
basic_string& replace( size_type pos, size_type count,

                       const basic_string& str,
                       size_type pos2, size_type count2 );

template< class InputIt >
basic_string& replace( const_iterator first, const_iterator last,

                       InputIt first2, InputIt last2 );
(2)
basic_string& replace( size_type pos, size_type count,

                       const CharT* cstr, size_type count2 );

basic_string& replace( const_iterator first, const_iterator last,

                       const CharT* cstr, size_type count2 );
(3)
basic_string& replace( size_type pos, size_type count,

                       const CharT* cstr );

basic_string& replace( const_iterator first, const_iterator last,

                       const CharT* cstr );
(4)
basic_string& replace( size_type pos, size_type count,

                       size_type count2, CharT ch );

basic_string& replace( const_iterator first, const_iterator last,

                       size_type count2, CharT ch );
(5)
basic_string& replace( const_iterator first, const_iterator last,
                       std::initializer_list<CharT> ilist );
(6) (начиная с C++11)

Заменяет часть строки, указанную диапазоном [pos, pos + count) или [first, last), на новую строку.

Новой строкой может быть:

1) строка str

2) подстрока [pos2, pos2 + count2) из str или символы в диапазоне [first2, last2)

3) первые count2 символов строки, на которую указывает cstr

4) строка с завершающим нулевым символом, на которую указывает cstr

5) count2 символов ch

6) символы в списке инициализации ilist

Содержание

[править] Параметры

pos позиция начала подстроки, которая будет заменена
count длина подстроки, которая будет заменена
first, last диапазон символов, которые будут заменены
str строка, используемая для замены
pos2 позиция начала подстроки, используемой для замены
count2 количество символов замены
cstr указатель на строку символов, используемую для замены
ch значение символа, используемого для замены
first2, last2 диапазон символов, используемых для замены
init список инициализации с символами, используемыми для замены
Требования к типам
-
InputIt должен соответствовать требованиям InputIterator.

[править] Возвращаемое значение

*this

[править] Исключения

std::out_of_range, если pos > length() или pos2 > str.length()

std::length_error, если результирующая строка будет превышать максимально возможную длину (std::string::npos - 1)

[править] Пример

#include <iostream>
#include <string>
 
int main()
{
    std::string str("The quick brown fox jumps over the lazy dog.");
 
    str.replace(10, 5, "red"); // (4)
 
    str.replace(str.begin(), str.begin() + 3, 1, 'A'); // (5)
 
    std::cout << str << '\n';
}

Вывод:

A quick red fox jumps over the lazy dog.