第一种方法:使用find和substr
vector<string> split(string s,string pat)
{
int pos = s.find(pat);
int start = 0;
vector<string> arr;
while (pos != -1)
{
int end = pos;
string ss = s.substr(start, end - start);
arr.push_back(ss);
start = pos + 1;
pos = s.find(pat, start);
}
string ss = s.substr(start, s.size());
arr.push_back(ss);
return arr;
}
1、find函数
原型:size_t find ( const string& str, size_t pos = 0 ) const;
功能:查找子字符串第一次出现的位置。
参数说明:str为子字符串,pos为初始查找位置。
返回值:找到的话返回第一次出现的位置,否则返回string::npos
2、substr函数
原型:string substr ( size_t pos = 0, size_t n = npos ) const;
功能:获得子字符串。
参数说明:pos为起始位置(默认为0),n为字符串长度(默认为npos)
返回值:子字符串
第二种方法:使用sstream头文件中的,getline(stringstream,string,const char)
vector<string> split(string s, const char pat)
{
stringstream ss(s);
string temp;
vector<string> str;
while (getline(ss, temp, pat))
{
str.push_back(temp);
}
return str;
}