| 162 | /***********************************************************************************/ |
| 163 | |
| 164 | std::string ReplaceAllSubstrings( |
| 165 | const std::string& rInputString, |
| 166 | const std::string& rStringToBeReplaced, |
| 167 | const std::string& rStringToReplace |
| 168 | ) |
| 169 | { |
| 170 | std::string output_string(rInputString); |
| 171 | std::size_t start_pos = 0; |
| 172 | while((start_pos = output_string.find(rStringToBeReplaced, start_pos)) != std::string::npos) { |
| 173 | output_string.replace(start_pos, rStringToBeReplaced.length(), rStringToReplace); |
| 174 | start_pos += rStringToReplace.length(); // Handles case where 'to' is a substring of 'from' |
| 175 | } |
| 176 | return output_string; |
| 177 | } |
| 178 | |
| 179 | /***********************************************************************************/ |
| 180 | /***********************************************************************************/ |