C++ 实现——split函数

来源:互联网 发布:组织机构图软件 编辑:程序博客网 时间:2024/05/11 19:22

//针对C++语言中没有现成的split函数,自己手动实现此函数,供以后直接使用

#include <iostream>#include <vector>#include <string>using namespace std;//处理函数/***s         原字符串*seperator 分割符*return    返回分好的串集合*/vector<string> split(const string &s, const string &seperator){    vector<string> result;    typedef string::size_type string_size;    string_size i = 0;    while (i != s.size()){        //找到字符串中首个不等于分隔符的字母;        int flag = 0;        while (i != s.size() && flag == 0){            flag = 1;            for (string_size x = 0; x < seperator.size(); ++x)                if (s[i] == seperator[x]){                    ++i;                    flag = 0;                    break;                }        }        //找到又一个分隔符,将两个分隔符之间的字符串取出;        flag = 0;        string_size j = i;        while (j != s.size() && flag == 0){            for (string_size x = 0; x < seperator.size(); ++x)                if (s[j] == seperator[x]){                    flag = 1;                    break;                }            if (flag == 0)                ++j;        }        if (i != j){            result.push_back(s.substr(i, j - i));            i = j;        }    }    return result;}int main(){    string s = "hello boy, I am a student, come from shangdong";    vector<string> res = split(s, " ");    for (auto a : res){        cout << a << endl;    }    return 0;}
0 0
原创粉丝点击