[DEV] add api to split string
This commit is contained in:
parent
6cf1b62ceb
commit
1c79ae4a3f
@ -905,6 +905,22 @@ std::vector<std::string> etk::split(const std::string& _input, char _val) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
std::vector<std::string> etk::split(const std::string& _input, std::string _val) {
|
||||||
|
std::vector<std::string> list;
|
||||||
|
size_t lastStartPos = 0;
|
||||||
|
for(size_t iii=0; iii<_input.size()-_val.size(); iii++) {
|
||||||
|
if (std::string(_input.begin()+iii, _input.begin()+iii+_val.size()) ==_val) {
|
||||||
|
list.push_back(std::string(_input, lastStartPos, iii - lastStartPos));
|
||||||
|
lastStartPos = iii+_val.size();
|
||||||
|
iii += _val.size()-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (lastStartPos<_input.size()) {
|
||||||
|
list.push_back(std::string(_input, lastStartPos));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
long double etk::string_to_long_double(const std::string& _str) {
|
long double etk::string_to_long_double(const std::string& _str) {
|
||||||
long double ret = 0;
|
long double ret = 0;
|
||||||
sscanf(_str.c_str(), "%Lf", &ret);
|
sscanf(_str.c_str(), "%Lf", &ret);
|
||||||
|
@ -629,6 +629,8 @@ namespace etk {
|
|||||||
std::vector<std::u32string> split(const std::u32string& _input, char32_t _val);
|
std::vector<std::u32string> split(const std::u32string& _input, char32_t _val);
|
||||||
#endif
|
#endif
|
||||||
//! @not_in_doc
|
//! @not_in_doc
|
||||||
|
std::vector<std::string> split(const std::string& _input, std::string _val);
|
||||||
|
//! @not_in_doc
|
||||||
void sort(std::vector<std::string *>& _list);
|
void sort(std::vector<std::string *>& _list);
|
||||||
#if __CPP_VERSION__ >= 2011
|
#if __CPP_VERSION__ >= 2011
|
||||||
//! @previous
|
//! @previous
|
||||||
|
Loading…
x
Reference in New Issue
Block a user