Replace substring with another substring C++

Here we will see how to replace substring with another substring. It replaces the portion of the string that begins at character pos and spans len characters.

The structure of the replace function is like below:

<span class="kwd">string</span><span class="pun">&</span><span class="pln"> replace </span><span class="pun">(</span><span class="typ">size_t</span><span class="pln"> pos</span><span class="pun">,</span><span class="pln"> </span><span class="typ">size_t</span><span class="pln"> len</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">const</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">&</span><span class="pln"> str</span><span class="pun">,</span><span class="pln"> </span><span class="typ">size_t</span><span class="pln"> subpos</span><span class="pun">,</span><span class="pln"> </span><span class="typ">size_t</span><span class="pln"> sublen</span><span class="pun">);</span>

The parameters are pos: It is an insertion point, str : It is a string object, len : It contains information about number of characters to erase.

Algorithm

Step 1: Get the main string, and the string which will be replaced. And the match string
Step 2: While the match string is present in the main string:
Step 2.1: Replace it with the given string.
Step 3: Return the modified string

Example Code

<span class="com">#include</span><span class="pln"> </span><span class="str"><iostream></span>
<span class="com">#include</span><span class="pln"> </span><span class="str"><string></span>
<span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> std</span><span class="pun">;</span>
<span class="kwd">int</span><span class="pln"> main </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd">   string</span><span class="pln"> </span><span class="kwd">base</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"this is a test string."</span><span class="pun">;</span>
<span class="kwd">   string</span><span class="pln"> str2 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"n example"</span><span class="pun">;</span>
<span class="kwd">   string</span><span class="pln"> str3 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"sample phrase"</span><span class="pun">;</span>
<span class="kwd">   string</span><span class="pln"> str4 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"useful."</span><span class="pun">;</span>
<span class="kwd">   string</span><span class="pln"> str </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">base</span><span class="pun">;</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="lit">9</span><span class="pun">,</span><span class="lit">5</span><span class="pun">,</span><span class="pln">str2</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="lit">19</span><span class="pun">,</span><span class="lit">6</span><span class="pun">,</span><span class="pln">str3</span><span class="pun">,</span><span class="lit">7</span><span class="pun">,</span><span class="lit">6</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="lit">8</span><span class="pun">,</span><span class="lit">10</span><span class="pun">,</span><span class="str">"just a"</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="lit">8</span><span class="pun">,</span><span class="lit">6</span><span class="pun">,</span><span class="str">"a shorty"</span><span class="pun">,</span><span class="lit">7</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="lit">22</span><span class="pun">,</span><span class="lit">1</span><span class="pun">,</span><span class="lit">3</span><span class="pun">,</span><span class="str">'!'</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">(),</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">end</span><span class="pun">()-</span><span class="lit">3</span><span class="pun">,</span><span class="pln">str3</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">(),</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">()+</span><span class="lit">6</span><span class="pun">,</span><span class="str">"replace"</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">()+</span><span class="lit">8</span><span class="pun">,</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">()+</span><span class="lit">14</span><span class="pun">,</span><span class="str">"is coolness"</span><span class="pun">,</span><span class="lit">7</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">()+</span><span class="lit">12</span><span class="pun">,</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">end</span><span class="pun">()-</span><span class="lit">4</span><span class="pun">,</span><span class="lit">4</span><span class="pun">,</span><span class="str">'o'</span><span class="pun">);</span>
<span class="pln">   str</span><span class="pun">.</span><span class="pln">replace</span><span class="pun">(</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">()+</span><span class="lit">11</span><span class="pun">,</span><span class="pln">str</span><span class="pun">.</span><span class="kwd">end</span><span class="pun">(),</span><span class="pln">str4</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">(),</span><span class="pln">str4</span><span class="pun">.</span><span class="kwd">end</span><span class="pun">());</span>
<span class="pln">   cout </span><span class="pun"><<</span><span class="pln"> str </span><span class="pun"><<</span><span class="pln"> </span><span class="str">'\n'</span><span class="pun">;</span>
<span class="kwd">   return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span>
<span class="pun">}</span>

Output

replace is useful.
Updated on: 2026-03-11T22:50:44+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements