32 #ifndef TBX_STRINGUTILS_H_ 33 #define TBX_STRINGUTILS_H_ 44 template<
class T> std::string
to_string(
const T &value)
46 std::ostringstream ss;
52 inline std::string
to_string(
const std::string &value)
57 inline std::string
to_string(
const char *value)
59 return std::string(value);
64 return std::string(value);
73 std::istringstream ss(str);
81 inline std::string
to_upper(
const std::string &value)
84 for (std::string::const_iterator i = value.begin(); i != value.end(); ++i)
86 result += std::toupper(*i);
94 inline std::string
to_lower(
const std::string &value)
97 for (std::string::const_iterator i = value.begin(); i != value.end(); ++i)
99 result += std::tolower(*i);
109 if (s1.length() != s2.length())
return false;
110 std::string::const_iterator i1, i2 = s2.begin();
111 for (i1 = s1.begin(); i1 != s1.end(); ++i1, ++i2)
112 if (std::tolower(*i1) != std::tolower(*i2))
return false;
121 return (stricmp(s1.c_str(), cs2) == 0);
137 return (stricmp(cs1, cs2) == 0);
149 return stricmp(cs1,cs2);
161 return stricmp(s1.c_str(),cs2);
173 return stricmp(cs1,s2.c_str());
184 return stricmp(s1.c_str(),s2.c_str());
196 inline std::string::size_type
find_ignore_case(
const std::string &s, std::string f, std::string::size_type start = 0)
198 if (f.empty())
return std::string::npos;
199 if (s.length() < f.length())
return std::string::npos;
201 std::string::size_type pos;
202 std::string::size_type max_pos = s.length() - f.length();
205 fchar[0] = std::tolower(f[0]);
206 fchar[1] = std::toupper(f[0]);
208 while ((pos = s.find_first_of(fchar, start))!=std::string::npos)
210 if (pos > max_pos)
return std::string::npos;
212 for (std::string::size_type i = 1; i < f.length() && found; i++)
213 found = (std::tolower(s[pos+i]) == std::tolower(f[i]));
214 if (found)
return pos;
218 return std::string::npos;
A library for creating RISC OS toolbox applications.
Definition: abouttobeshownlistener.cc:34
std::string to_upper(const std::string &value)
Return string converted to upper case.
Definition: stringutils.h:81
bool equals_ignore_case(const std::string &s1, const std::string &s2)
Compare two strings ignoring case.
Definition: stringutils.h:107
T from_string(const std::string &str)
Convert a string to another type.
Definition: stringutils.h:70
int compare_ignore_case(const char *cs1, const char *cs2)
Compares two strings ignoring case.
Definition: stringutils.h:147
std::string to_string(const T &value)
Convert a value to a string.
Definition: stringutils.h:44
std::string::size_type find_ignore_case(const std::string &s, std::string f, std::string::size_type start=0)
Find a string in another ignoring case.
Definition: stringutils.h:196
std::string to_lower(const std::string &value)
Return string converted to lower case.
Definition: stringutils.h:94