Program to Replace a Particular Word by Another Word from a given String in C++
Replace a Particular word by Another word from a Given String in C++
Here, in this page we will discuss the program to Replace a Particular word by Another word from a Given String in C++ programming language.
Method Discussed :
- Method 1 : Brute force approach
- Method 2 : In-place Replacing
Let’s discuss both the methods one by one in brief,
Method 1 :
- Declare a string variable say ans = “” to store the required string.
- Iterate over the characters of the string S using variable i and perform the following steps:
- If the prefix substring of the string S is equal to S1 from the index i, then add the string S2 in the string ans.
- Otherwise, add the current character to the string ans.
- After completing the above steps, print the string ans as the result.
Method 1 : Code in C++
Run
#include <bits/stdc++.h>
using namespace std;
// Function to replace all the occurrences
// of the substring S1 to S2 in string S
void modifyString(string& s, string& s1,
string& s2)
{
// Stores the resultant string
string ans = "";
// Traverse the string s
for (int i = 0; i < s.length(); i++) {
int k = 0;
// If the first character of
// string s1 matches with the
// current character in string s
if (s[i] == s1[k]
&& i + s1.length()
<= s.length()) {
int j;
// If the complete string
// matches or not
for (j = i; j < i + s1.length(); j++) {
if (s[j] != s1[k]) {
break;
}
else {
k = k + 1;
}
}
// If complete string matches
// then replace it with the
// string s2
if (j == i + s1.length()) {
ans.append(s2);
i = j - 1;
}
// Otherwise
else {
ans.push_back(s[i]);
}
}
// Otherwise
else {
ans.push_back(s[i]);
}
}
// Print the resultant string
cout <<"Modified String : "<< ans;
}
// Driver Code
int main()
{
string S = "Let's Learn C";
string S1 = "C";
string S2 = "C++";
cout<<"Original String : "<<S<<endl;
modifyString(S, S1, S2);
return 0;
}Output
Original String : Let's Learn C
Modified String : Let's Learn C++
Method 2 :
This method involves inplace update of string. It is more efficient as it uses only extra space for the new characters to be inserted.
Method 2 : Code in C++
Run
#include < bits/stdc++.h >
using namespace std;
int main ()
{
string s = "Let's Learn C";
cout << "Original String : " << s << endl;
string x = "C", y = "C++";
reverse (s.begin (), s.end ());
reverse (x.begin (), x.end ());
reverse (y.begin (), y.end ());
int ls = s.length (), lx = x.length (), ly = y.length ();
int d = ly - lx;
int ct = 0;
int i = 0, j = 0;
while (i < ls){
string temp = "";
for (int k = 0; k < lx; k++){
temp += s[i + k];
}
if (temp == x){
ct++;
i = i + lx;
}
else{
i = i + 1;
}
}
for (int i = 0; i < ct * d; i++)
s += ' ';
i = ls - 1;
j = ls + ct * d - 1;
while (i >= 0 && j >= 0){
string temp = "";
for (int k = 0; k < lx; k++){
if (i < (lx - 1 - k))
break;
temp += s[i - (lx - 1 - k)];
}
if (temp == x){
int k = ly - 1;
while (k >= 0)
s[j--] = y[k--];
i = i - lx;
}
else{
s[j--] = s[i--];
}
}
reverse (s.begin (), s.end ());
cout << "Modified String : " << s << endl;
return 0;
}
Output
Original String : Let's Learn C
Modified String : Let's Learn C++
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Login/Signup to comment

#include
#include
#include
using namespace std;
int main()
{
string str;
string change;
char ch;
cout<<"Enter string:";
getline(cin,str);
cout<<"Enter character which we want to add :";
getline(cin,change);
cout<>ch;
int place=str.find(ch);
str.erase(place,1);
str.insert(place,change);
cout<<str;
return 0;
}