mirror of
https://github.com/lifegpc/c-utils.git
synced 2026-06-07 21:58:46 +08:00
Update
This commit is contained in:
16
str_util.cpp
16
str_util.cpp
@@ -28,4 +28,20 @@ std::string str_util::str_replace(std::string input, std::string pattern, std::s
|
||||
else break;
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
std::list<std::string> str_util::str_split(std::string input, std::string pattern, size_t max) {
|
||||
if (max == 0) return {};
|
||||
std::list<std::string> li;
|
||||
auto loc = input.find(pattern, 0);
|
||||
auto last_loc = 0;
|
||||
auto len = pattern.length();
|
||||
while (loc != -1 && li.size() < max) {
|
||||
li.push_back(input.substr(last_loc, loc - last_loc));
|
||||
last_loc = loc + len;
|
||||
if (last_loc < input.length()) loc = input.find(pattern, max(0, last_loc));
|
||||
else break;
|
||||
}
|
||||
if (last_loc <= input.length()) li.push_back(input.substr(last_loc, input.length() - last_loc));
|
||||
return li;
|
||||
}
|
||||
Reference in New Issue
Block a user