! @brief replace all occurrences of a substring by another string @param[in,out] s the string to manipulate; changed so that all occurrences of @a f are replaced with @a t @param[in] f the substring to replace with @a t @param[in] t the string to replace @a f @pre The search string @a f must not be empty. **This precondition is enforced with
| 7138 | @since version 2.0.0 |
| 7139 | */ |
| 7140 | static void replace_substring(std::string& s, const std::string& f, |
| 7141 | const std::string& t) |
| 7142 | { |
| 7143 | assert(not f.empty()); |
| 7144 | for (auto pos = s.find(f); // find first occurrence of f |
| 7145 | pos != std::string::npos; // make sure f was found |
| 7146 | s.replace(pos, f.size(), t), // replace with t, and |
| 7147 | pos = s.find(f, pos + t.size())) // find next occurrence of f |
| 7148 | {} |
| 7149 | } |
| 7150 | |
| 7151 | /// escape "~"" to "~0" and "/" to "~1" |
| 7152 | static std::string escape(std::string s) |