Added StringUtil::replaceAll()

pull/333/head^2
Alexander Stillich 7 years ago
parent 7d39c5450c
commit af3e1f92ec

@ -2,6 +2,7 @@
#define MISC_STRINGOPS_H
#include <cctype>
#include <cstring>
#include <string>
#include <algorithm>
@ -138,6 +139,35 @@ public:
return notFound;
}
/** @brief Replaces all occurrences of a string in another string.
*
* @param str The string to operate on.
* @param what The string to replace.
* @param with The replacement string.
* @param what_len The length of the string to replace.
* @param with_len The length of the replacement string.
*
* @return A reference to the string passed in @p str.
*/
static std::string &replaceAll(std::string &str, const char *what, const char *with,
std::size_t what_len=std::string::npos, std::size_t with_len=std::string::npos)
{
if (what_len == std::string::npos)
what_len = strlen(what);
if (with_len == std::string::npos)
with_len = strlen(with);
std::size_t found;
std::size_t offset = 0;
while((found = str.find(what, offset, what_len)) != std::string::npos)
{
str.replace(found, what_len, with, with_len);
offset = found + with_len;
}
return str;
}
};
}

Loading…
Cancel
Save