Open In App

std::string::replace() in C++

Improve
Improve
Like Article
Like
Save
Share
Report

The string replace() function in C++ replaces each element in the part of the string in the range [first, last). It is defined inside the std::string class in C++ as a member function to provide replace functionality.

Syntax of String replace()

The syntax of std::string::replace() is as follows:

string& replace( first, last, str);

Parameters of String replace()

  • first: Iterator or index value to the starting point of the range where we want to replace the string.
  • last: Iterator or index value to the ending point of the range where we want to replace the string.
  • str: String that is to be inserted in the range first and last replacing the currently present characters.

Return Value of String replace()

  • This function returns the reference to the current string object( this ptr).

Example of String replace()

C++




// CPP code to demonstrate std::string::replace()
#include <iostream>
using namespace std;
  
// Function for demonstration
void replaceDemo(string s1, string s2, string s3, string s4)
{
    // Using positions
    cout << "Using positions:"
         << "\n";
    // Replaces 7 characters from 0th index by s2
    s1.replace(0, 7, s2);
    cout << s1 << endl;
  
    // Replaces 3 characters from 0th index with "Hello"
    s4.replace(0, 3, "Hello ");
    cout << s4 << endl;
  
    // Replaces 5 characters from 6th index of s4 with
    // 5 characters from 0th of s3
    s4.replace(6, 5, s3, 0, 5);
    cout << s4 << endl;
  
    // Replaces 5 characters from 6th index of s4 with
    // 6 characters from string "to all"
    s4.replace(6, 5, "to all", 6);
    cout << s4 << endl;
  
    // Replaces 1 character from 12th  index of s4 with
    // 3 copies of '!'
    s4.replace(12, 1, 3, '!');
    cout << s4 << endl;
  
    // Using iterators
    cout << "\nUsing iterators:"
         << "\n";
    // Replaces whole s2 string with s3
    s2.replace(s2.begin(), s2.end(), s3);
    cout << s2 << "\n";
  
    // Replaces 13 characters from begin of s1 with string
    // "Example"
    s1.replace(s1.begin(), s1.begin() + 13, "Example");
    cout << s1 << "\n";
  
    // Replace last 7 characters of s4 with first 12
    // characters of the string "geeks from- here"
    s4.replace(s4.end() - 7, s4.end(), "geeks from- here",
               12);
    cout << s4 << "\n";
  
    // Replaces last character with complete s2 string from
    // s2.begin() till s2.end()
    s4.replace(s4.end() - 1, s4.end(), s2.begin(),
               s2.end());
    cout << s4 << "\n";
  
    // Replaces portion of string s4 starting from 5
    // characters from s4.begin() to 15 characters from
    // s4.begin() with 2 occurrences of ','
    s4.replace(s4.begin() + 5, s4.begin() + 15, 2, ',');
    cout << s4 << "\n";
}
  
// Driver code
int main()
{
    string s1 = "Example of replace";
    string s2 = "Demonstration";
    string s3 = "GeeksforGeeks";
    string s4 = "HeyWorld !";
  
    replaceDemo(s1, s2, s3, s4);
    return 0;
}


Output

Using positions:
Demonstration of replace
Hello World !
Hello Geeks !
Hello to all !
Hello to all!!!!

Using iterators:
GeeksforGeeks
Example of replace
Hello to geeks from- 
Hello to geeks from-GeeksforGeeks
Hello,,from-GeeksforGeeks

Related Article : std::string::replace_copy(), std::string::replace_copy_if
This article is contributed by Sakshi Tiwari. If you like GeeksforGeeks(We know you do!) and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org.

 



Last Updated : 08 Nov, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads