C++ split()函数的简单实现
/*
* @param: out result;
* @param: in str;
* @param: in delim;
*/
void split(vector<string> &result, const string &str, const string &delim)
{
string::size_type pos1, pos2;
pos1 = 0;
pos2 = str.find(delim);
while(pos2 != string::npos)
{
result.push_back(str.substr(pos1, pos2-pos1));
//pos1 = pos2+1;
pos1 = str.find_first_not_of(delim, pos2);
pos2 = str.find(delim, pos1);
}
result.push_back(str.substr(pos1)); //最后一个
}
int main()
{
vector<string> result;
string str("Hello World Test hhh gg pp");
split(result, str, " ");
for(vector<string>::iterator it=result.begin(); it!=result.end(); ++it)
{
cout << *it << ",";
}
return 0;
}
测试结果