@@ -144,41 +144,52 @@ size_t utils::string::count(std::string const& str, char countC) {
144
144
return res;
145
145
}
146
146
147
- std::string& utils::string::trimLeftIP (std::string& str) {
148
- str.erase (str.begin (), std::find_if (str.begin (), str.end (), [](auto ch) {
149
- return !std::isspace (ch);
150
- }));
147
+
148
+ std::string& utils::string::trimLeftIP (std::string& str, std::string const & chars) {
149
+ str.erase (0 , str.find_first_not_of (chars));
151
150
return str;
152
151
}
152
+ std::string& utils::string::trimLeftIP (std::string& str) {
153
+ return utils::string::trimLeftIP (str, " \f\n\r\t\v " );
154
+ }
153
155
154
- std::string& utils::string::trimRightIP (std::string& str) {
155
- str.erase (
156
- std::find_if (
157
- str.rbegin (),
158
- str.rend (),
159
- [](auto ch) {
160
- return !std::isspace (ch);
161
- }
162
- ).base (),
163
- str.end ()
164
- );
156
+ std::string& utils::string::trimRightIP (std::string& str, std::string const & chars) {
157
+ str.erase (str.find_last_not_of (chars) + 1 );
165
158
return str;
166
159
}
160
+ std::string& utils::string::trimRightIP (std::string& str) {
161
+ return utils::string::trimRightIP (str, " \f\n\r\t\v " );
162
+ }
167
163
164
+ std::string& utils::string::trimIP (std::string& str, std::string const & chars) {
165
+ return utils::string::trimLeftIP (utils::string::trimRightIP (str, chars), chars);
166
+ }
168
167
std::string& utils::string::trimIP (std::string& str) {
169
168
return utils::string::trimLeftIP (utils::string::trimRightIP (str));
170
169
}
171
170
171
+ std::string utils::string::trimLeft (std::string const & str, std::string const & chars) {
172
+ auto s2 = str;
173
+ return utils::string::trimLeftIP (s2, chars);
174
+ }
172
175
std::string utils::string::trimLeft (std::string const & str) {
173
176
auto s2 = str;
174
177
return utils::string::trimLeftIP (s2);
175
178
}
176
179
180
+ std::string utils::string::trimRight (std::string const & str, std::string const & chars) {
181
+ auto ret = str;
182
+ return utils::string::trimRightIP (ret, chars);
183
+ }
177
184
std::string utils::string::trimRight (std::string const & str) {
178
185
auto ret = str;
179
186
return utils::string::trimRightIP (ret);
180
187
}
181
188
189
+ std::string utils::string::trim (std::string const & str, std::string const & chars) {
190
+ auto ret = str;
191
+ return utils::string::trimIP (ret, chars);
192
+ }
182
193
std::string utils::string::trim (std::string const & str) {
183
194
auto ret = str;
184
195
return utils::string::trimIP (ret);
0 commit comments