Go to the documentation of this file.
5 #ifndef GLVERTEX_STRING_H
6 #define GLVERTEX_STRING_H
31 std::string
prefix(
const std::string &match)
const
33 size_t pos = find(match);
34 if (pos != std::string::npos)
return(substr(0, pos));
39 std::string
suffix(
const std::string &match)
const
41 size_t pos = rfind(match);
42 if (pos != std::string::npos)
return(substr(pos+match.size(), size()-pos-match.size()));
47 std::string
head(
const std::string &match)
const
49 size_t pos = rfind(match);
50 if (pos != std::string::npos)
return(substr(0, pos));
55 std::string
tail(
const std::string &match)
const
57 size_t pos = find(match);
58 if (pos != std::string::npos)
return(substr(pos+match.size(), size()-pos-match.size()));
65 return(find(with) == 0);
71 return(rfind(with) == size()-with.size());
77 if (
startsWith(match))
return(substr(match.size(), size()-match.size()));
84 if (
endsWith(match))
return(substr(0, size()-match.size()));
91 size_t pos1 = find(start);
92 if (pos1 != std::string::npos)
94 size_t pos2 = find(stop, pos1+start.size());
95 if (pos2 != std::string::npos)
97 lgl_string sub = substr(pos1, pos2-pos1+stop.size());
98 replace(pos1, pos2-pos1+stop.size(),
"");
111 if (separator ==
'\0')
112 std::transform(s.begin(), s.end(), s.begin(), ::tolower);
114 for (
size_t i=0; i<s.size(); i++)
117 s[i] = ::tolower(s[i]);
120 if (::islower(s[i-1]))
121 s.insert(i, 1, separator);
131 std::transform(s.begin(), s.end(), s.begin(), ::toupper);
139 std::transform(s.begin(), s.end(), s.begin(), tononwhite);
147 std::transform(s.begin(), s.end(), s.begin(), toprint);
155 std::transform(s.begin(), s.end(), s.begin(), toalnum);
161 static char tononwhite(
char c)
163 if (::isspace(c))
return(
'_');
167 static char toprint(
char c)
169 if (::isprint(c))
return(c);
173 static char toalnum(
char c)
175 if (::isalnum(c))
return(c);
182 void replaceAll(
const std::string &search,
const std::string &with)
185 while ((pos = find(search, pos)) != std::string::npos)
187 replace(pos, search.length(), with);
188 pos += with.length();
193 static void stringReplaceAll(std::string &text,
const std::string &search,
const std::string &with)
196 while ((pos = text.find(search, pos)) != std::string::npos)
198 text.replace(pos, search.length(), with);
199 pos += with.length();
lgl_string strip(const std::string &match) const
strip match from begin
Definition: glvertex_string.h:75
bool empty() const
is the string empty?
Definition: glvertex_string.h:25
lgl_string chop(const std::string &match) const
chop match from end
Definition: glvertex_string.h:82
lgl_string toUpper() const
convert to upper case
Definition: glvertex_string.h:128
std::string suffix(const std::string &match) const
get suffix after last substring match
Definition: glvertex_string.h:39
std::string prefix(const std::string &match) const
get prefix before first substring match
Definition: glvertex_string.h:31
bool startsWith(const std::string &with) const
match begin
Definition: glvertex_string.h:63
static void stringReplaceAll(std::string &text, const std::string &search, const std::string &with)
replace all occurrences in std::string
Definition: glvertex_string.h:193
lgl_string replaceNonAlphaNumeric() const
replace non-alphanumeric characters
Definition: glvertex_string.h:152
bool endsWith(const std::string &with) const
match end
Definition: glvertex_string.h:69
LGL string class that extends std::string.
Definition: glvertex_string.h:12
lgl_string replaceWhiteSpace() const
replace white space
Definition: glvertex_string.h:136
std::string head(const std::string &match) const
get head before last substring match
Definition: glvertex_string.h:47
lgl_string remove(const std::string &start, const std::string &stop)
remove fragment between start and stop delimiters
Definition: glvertex_string.h:89
void replaceAll(const std::string &search, const std::string &with)
replace all occurrences in place
Definition: glvertex_string.h:182
lgl_string toLower(char separator='\0') const
convert to lower case
Definition: glvertex_string.h:107
std::string tail(const std::string &match) const
get tail after first substring match
Definition: glvertex_string.h:55
lgl_string replaceNonPrintable() const
replace non-printable characters
Definition: glvertex_string.h:144