diff options
Diffstat (limited to 'src/string.cpp')
-rw-r--r-- | src/string.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/string.cpp b/src/string.cpp index e9a619c40..fbb447ee9 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -358,6 +358,33 @@ void StrTrimInPlace(std::string &str) StrRightTrimInPlace(str); } +/** + * Check whether the given string starts with the given prefix. + * @param str The string to look at. + * @param prefix The prefix to look for. + * @return True iff the begin of the string is the same as the prefix. + */ +bool StrStartsWith(const std::string_view str, const std::string_view prefix) +{ + size_t prefix_len = prefix.size(); + if (str.size() < prefix_len) return false; + return str.compare(0, prefix_len, prefix, 0, prefix_len) == 0; +} + +/** + * Check whether the given string ends with the given suffix. + * @param str The string to look at. + * @param suffix The suffix to look for. + * @return True iff the end of the string is the same as the suffix. + */ +bool StrEndsWith(const std::string_view str, const std::string_view suffix) +{ + size_t suffix_len = suffix.size(); + if (str.size() < suffix_len) return false; + return str.compare(str.size() - suffix_len, suffix_len, suffix, 0, suffix_len) == 0; +} + + /** Scans the string for colour codes and strips them */ void str_strip_colours(char *str) { |