Синтаксис:
#include <string> string& replace( size_type index, size_type num, const string& str ); string& replace( size_type index1, size_type num1, const string& str, size_type index2, size_type num2 ); string& replace( size_type index, size_type num, const charT* str ); string& replace( size_type index, size_type num1, const charT* str, size_type num2 ); string& replace( size_type index, size_type num1, size_type num2, charT ch); string& replace( iterator start, iterator end, const string& str ); string& replace( iterator start, iterator end, const charT* str ); string& replace( iterator start, iterator end, const charT* str, size_type num ); string& replace( iterator start, iterator end, size_type num, charT ch ); string& replace( iterator start, iterator end, input_iterator start2, input_iterator end2 );
Метод replace
выполняет следующие действия:
num
символов текущей строки символами из строки str
, начиная с индекса index
,num1
символов текущей строки (начиная с индекса index1
) символами строки str
в количестве num2
, начиная с индекса index2
,num
символов текущей строки символами из строки str
, начиная с индекса index
строки str
(в отличие от первого варианта перегрузки, в данном случае строка передается как указатель на массив символов),num1
символов текущей строки (начиная с индекса index1
) символами строки str
в количестве num2
, начиная с индекса index2
(строка передается как указатель на массив символов),num1
символов текущей строки (начиная с индекса index
) символами ch
в количестве num2
,start
до end
символами из строки str
в количестве num
,start
до end
символами ch в количестве num.Например, следующий код выводит строку «They say he carved it himself…find your soul-mate, Homer.» :
string s = "They say he carved it himself...from a BIGGER spoon"; string s2 = "find your soul-mate, Homer."; s.replace( 32, s.length() - 32, s2 ); cout << s << endl;
Метод replace может так же использоваться для замены всех вхождений одной строки в другую.
Например:
string& replaceAll(string& context, const string& from, const string& to) { size_t lookHere = 0; size_t foundHere; while((foundHere = context.find(from, lookHere)) != string::npos) { context.replace(foundHere, from.size(), to); lookHere = foundHere + to.size(); } return context; }
Смотрите также: insert