将std::string类型的字符串拆分,如”a;b;c;d;e;f”,按”;”拆分,拆分后保存在vector中
1、方法:
void StringSplit(string s, char splitchar, vector<string>& vec)
{
//保证vec是空的
if (vec.size() > 0) {
vec.clear();
vec.swap(vec);
}
int length = s.length();
printf("length = %d", length);
int start = 0;
for (int i = 0; i < length; i++)
{
//第一个就遇到分割符
if (s[i] == splitchar && i == 0)
{
start += 1;
}
else if (s[i] == splitchar)
{
vec.push_back(s.substr(start, i - start));
start = i + 1;
}
//到达尾部
else if (i == length - 1)
{
vec.push_back(s.substr(start, i + 1 - start));
}
}
for (unsigned int i = 0; i < vec.size(); i++) {
printf("%s", vec.at(i).c_str());
}
}
2、使用方式
std::vector<std::string> vecString;
StringSplit("a;b;c;d;e;f", ';', vecString);