C++ string Replacing words in a string

Description

C++ string Replacing words in a string

#include <iostream>
#include <string>
using std::string;

int main()/*w  ww .j  a v  a 2  s .  co  m*/
{

  string text;                                        // The string to be modified
  std::cout << "Enter a string terminated by *:\n";
  std::getline(std::cin, text, '*');

  string word;                                        // The word to be replaced
  std::cout << "Enter the word to be replaced: ";
  std::cin >> word;

  string replacement;                                 // The word to be substituted
  std::cout << "Enter the string to be substituted for " << word << ": ";
  std::cin >> replacement;
  if (word == replacement)                            // Verify there's something to do
  {
    std::cout << "The word and its replacement are the same.\n"
      << "Operation aborted." << std::endl;
    return 1;
  }

  int start {text.find(word)};                      // Index of 1st occurrence of word
  while (start != string::npos)                        // Find and replace all occurrences
  {
    text.replace(start, word.length(), replacement);   // Replace word
    start = text.find(word, start + replacement.length());
  }

  std::cout << "\nThe string you entered is now:\n"
            << text << std::endl;
}



PreviousNext

Related