diff options
Diffstat (limited to 'src/StringUtils.cpp')
-rw-r--r-- | src/StringUtils.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/StringUtils.cpp b/src/StringUtils.cpp index deb4949..16d3b48 100644 --- a/src/StringUtils.cpp +++ b/src/StringUtils.cpp @@ -14,4 +14,37 @@ namespace QuickMedia { index = new_index + 1; } } + + void string_replace_all(std::string &str, const std::string &old_str, const std::string &new_str) { + size_t index = 0; + while(true) { + index = str.find(old_str, index); + if(index == std::string::npos) + return; + str.replace(index, old_str.size(), new_str); + } + } + + static bool is_whitespace(char c) { + return c == ' ' || c == '\n' || c == '\t' || c == '\v'; + } + + std::string strip(const std::string &str) { + if(str.empty()) + return str; + + int start = 0; + for(; start < (int)str.size(); ++start) { + if(!is_whitespace(str[start])) + break; + } + + int end = str.size() - 1; + for(; end >= start; --end) { + if(!is_whitespace(str[end])) + break; + } + + return str.substr(start, end - start + 1); + } }
\ No newline at end of file |