【C++】利用STL實現string的split函數

效果:
例如: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的回答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章