string (1)      string& replace (size_t pos,  size_t len,  const string& str);
                string& replace (iterator i1, iterator i2, const string& str);

substring (2)   string& replace (size_t pos,  size_t len,  const string& str,
                                 size_t subpos, size_t sublen);

c-string (3)	string& replace (size_t pos,  size_t len,  const char* s);
                string& replace (iterator i1, iterator i2, const char* s);

buffer (4)	string& replace (size_t pos,  size_t len,  const char* s, size_t n);
                string& replace (iterator i1, iterator i2, const char* s, size_t n);

fill (5)	string& replace (size_t pos,  size_t len,  size_t n, char c);
                string& replace (iterator i1, iterator i2, size_t n, char c);

range (6)	template <class InputIterator>
                string& replace (iterator i1, iterator i2,
                                 InputIterator first, InputIterator last);



replace إستبدال جزء من متغير نصي (Replace portion of string)



المعطيات

str
    Another string object, whose value is copied.
pos
    Position of the first character to be replaced.
    If this is greater than the string length, it throws out_of_range.
len
    Number of characters to replace (if the string is shorter, as many characters as possible are replaced).
    A value of string::npos indicates all characters until the end of the string.
subpos
    Position of the first character in str that is copied to the object as replacement.
    If this is greater than str's length, it throws out_of_range.
sublen
    Length of the substring to be copied (if the string is shorter, as many characters as possible are copied).
    A value of string::npos indicates all characters until the end of str.
s
    Pointer to an array of characters (such as a c-string).
n
    Number of characters to copy.
c
    Character value, repeated n times.
first, last
    Input iterators to the initial and final positions in a range. The range used is [first,last), which includes all the characters between first and last, including the character pointed by first but not the character pointed by last.
    The function template argument InputIterator shall be an input iterator type that points to elements of a type convertible to char.
il
    An initializer_list object.
    These objects are automatically constructed from initializer list declarators.


size_t is an unsigned integral type (the same as member type string::size_type).    



المثال الأول

في المثال (1) تم ادخال متغير نصي داخل متغير نصي آخر لاحظ ان الرقم 9 يحدد بداية الادخال و الرقم 5 يحدد عدد الحروف التي سوف يتم استبدالها. لاخظ ايضا ان كامل النص str2 سوف يتم ادخاله في النص str

في المثال (2) تم ادخال جزء من متغير نصي في متغير نصي آخر. الرقم الاول 19 يحدد بداية الادخال و الرقم 6 يحدد عدد الحروف التي سوف يتم استبدالها. لاخظ ان جزء من النص str3 اعتبارا من الحرف 7 و بطول 6 حروف سوف يتم ادخاله في النص str

في المثال (3) تم ادخال نص داخل متغير نصي. لاحظ ان الرقم 8 يحدد بداية الادخال و الرقم 10 يحدد عدد الحروف التي سوف يتم استبدالها. لاخظ ايضا ان كامل النص "just a" سوف يتم ادخاله في النص str

في المثال (4) تم ادخال جزء من نص في متغير نصي. الرقم الاول 8 يحدد بداية الادخال و الرقم 6 يحدد عدد الحروف التي سوف يتم استبدالها. لاخظ ايضا ان جزء من النص "a shorty" اعتبارا من البداية وبطول 7 حروف سوف يتم ادخاله في النص str

في المثال (5) تم ادخال حرف في متغير نصي. الرقم الاول 22 يحدد بداية الادخال و الرقم 1 يحدد عدد الحروف التي سوف يتم استبدالها اما الرقم 3 فإنه يحدد عدد التكرار من الحروف المراد ادخالها.


// replacing in a string
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string base="this is a test string.";
  string str2="n example";
  string str3="sample phrase";
  string str4="useful.";

  // replace signatures used in the same order as described above:

  // Using positions:                 0123456789*123456789*12345
  string str=base;                // "this is a test string."
  str.replace(9,5,str2);          // "this is an example string." (1)
  str.replace(19,6,str3,7,6);     // "this is an example phrase." (2)
  str.replace(8,10,"just a");     // "this is just a phrase."     (3)
  str.replace(8,6,"a shorty",7);  // "this is a short phrase."    (4)
  str.replace(22,1,3,'!');        // "this is a short phrase!!!"  (5)

  // Using iterators:                                               0123456789*123456789*
  str.replace(str.begin(),str.end()-3,str3);                    // "sample phrase!!!"      (1)
  str.replace(str.begin(),str.begin()+6,"replace");             // "replace phrase!!!"     (3)
  str.replace(str.begin()+8,str.begin()+14,"is coolness",7);    // "replace is cool!!!"    (4)
  str.replace(str.begin()+12,str.end()-4,4,'o');                // "replace is cooool!!!"  (5)
  str.replace(str.begin()+11,str.end(),str4.begin(),str4.end());// "replace is useful."    (6)
  cout << str << '\n';
  return 0;
}


المخرجات

replace is useful.


أنظر أيضا