void SplitString(const string& s, vector<string>& v,string c) { string::size_type pos1,pos2; pos2=s.find(c); pos1=0; while(string::npos!=pos2){ v.push_back(s.substr(pos1,pos2-pos1)); pos1=pos2+c.size(); pos2=s.find(c,pos1); } if(pos1!=s.length()) v.push_back(s.substr(pos1)); }
时间: 2024-04-20 17:25:06 浏览: 80
String split函数
这段代码是一个字符串分割函数。它接受一个字符串和一个分隔符作为参数,并将分隔后的子字符串存储在一个 vector 容器中。
函数中使用了两个变量 `pos1` 和 `pos2` 来记录分隔符在字符串中的位置。初始时,`pos2` 被设置为第一个分隔符的位置,`pos1` 被设置为字符串的起始位置。
然后,在一个循环中,使用 `find` 函数来查找下一个分隔符的位置。如果找到了分隔符,则使用 `substr` 函数截取从 `pos1` 到 `pos2` 之间的子字符串,并将其添加到 vector 容器中。然后,更新 `pos1` 和 `pos2` 的值,继续查找下一个分隔符的位置。
循环结束后,如果 `pos1` 不等于字符串的长度,则说明剩余部分也是一个子字符串,将其添加到 vector 容器中。
总结起来,这个函数的作用是将一个字符串按照指定的分隔符进行切割,然后将切割后的子字符串保存到 vector 容器中。
阅读全文