Codechange: add function to determine whether are string starts or ends with a given other string

pull/332/head
rubidium42 3 years ago committed by rubidium42
parent 2d0abf5a76
commit fed3e3305f

@ -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)
{

@ -51,6 +51,9 @@ bool strtolower(std::string &str, std::string::size_type offs = 0);
bool StrValid(const char *str, const char *last) NOACCESS(2);
void StrTrimInPlace(std::string &str);
bool StrStartsWith(const std::string_view str, const std::string_view prefix);
bool StrEndsWith(const std::string_view str, const std::string_view suffix);
/**
* Check if a string buffer is empty.
*

Loading…
Cancel
Save