I've spent the last hour and a half trying to figure out how to run a simple search and replace on a string
object in C++.
I have three string objects.
string original, search_val, replace_val;
I want to run a search command on original
for the search_val
and replace all occurrences with replace_val
.
NB: Answers in pure C++ only. The environment is XCode on the Mac OSX Leopard.
Algorithm to Replace string in CAccept the string, with which to replace the sub-string. If the substring is not present in the main string, terminate the program. If the substring is present in the main string then continue.
The replace() method returns a new string with one, some, or all matches of a pattern replaced by a replacement . The pattern can be a string or a RegExp , and the replacement can be a string or a function called for each match. If pattern is a string, only the first occurrence will be replaced.
Java String replace() Method The replace() method searches a string for a specified character, and returns a new string where the specified character(s) are replaced.
The replace() method searches a string for a value or a regular expression. The replace() method returns a new string with the value(s) replaced. The replace() method does not change the original string.
A loop should work with find and replace
void searchAndReplace(std::string& value, std::string const& search,std::string const& replace)
{
std::string::size_type next;
for(next = value.find(search); // Try and find the first match
next != std::string::npos; // next is npos if nothing was found
next = value.find(search,next) // search for the next match starting after
// the last match that was found.
)
{
// Inside the loop. So we found a match.
value.replace(next,search.length(),replace); // Do the replacement.
next += replace.length(); // Move to just after the replace
// This is the point were we start
// the next search from.
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With