How do I Search/Find and Replace in a standard string?


Is there a way to replace all occurrences of a substring with another string in std::string?

For instance:

void SomeFunction(std::string& str)
   str = str.replace("hello", "world"); //< I'm looking for something nice like this
12/20/2011 11:34:11 AM

Accepted Answer

Why not implement your own replace?

void myReplace(std::string& str,
               const std::string& oldStr,
               const std::string& newStr)
  std::string::size_type pos = 0u;
  while((pos = str.find(oldStr, pos)) != std::string::npos){
     str.replace(pos, oldStr.length(), newStr);
     pos += newStr.length();
6/22/2016 11:47:06 AM

#include <boost/algorithm/string.hpp> // include Boost, a C++ library
std::string target("Would you like a foo of chocolate. Two foos of chocolate?");
boost::replace_all(target, "foo", "bar");

Here is the official documentation on replace_all.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow