效果:
例如:string path = “home/zxc//////adf///sadf”,分隔符seq="/"。
split之後,返回的vector<string>數組如下:
代碼實現:
#include <iostream>
#include <vector>
using namespace std;
void splitString(vector<string>& strings, const string& org_string, const string& seq) {
string::size_type p1 = 0;
string::size_type p2 = org_string.find(seq);
while (p2 != string::npos) {
if (p2 == p1) {
++p1;
p2 = org_string.find(seq, p1);
continue;
}
strings.push_back(org_string.substr(p1, p2 - p1));
p1 = p2 + seq.size();
p2 = org_string.find(seq, p1);
}
if (p1 != org_string.size()) {
strings.push_back(org_string.substr(p1));
}
}
int main() {
vector<string> strings;
string path = "home/zxc//////adf///sadf";
splitString(strings, path, "/");
return 0;
}
參考:https://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html評論區egmkang的回答。