您的位置:首页 > 编程语言 > C语言/C++

C++ 实现——split函数

2016-04-07 08:57 465 查看
//针对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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: