定义一个函数vector<string> split(const string& s, const string& w),实现功能为利用w或者默认空白字符为分隔符将s分隔成若干子串,并以向量的向形式返回这些子串。C++
时间: 2024-02-22 17:59:59 浏览: 105
详解C++的String类的字符串分割实现
5星 · 资源好评率100%
好的,下面是你所需要的函数实现:
```cpp
#include <vector>
#include <string>
using namespace std;
vector<string> split(const string& s, const string& w = " ") {
vector<string> result;
string::size_type start = 0, end = 0;
while ((end = s.find(w, start)) != string::npos) {
if (end != start) {
result.push_back(s.substr(start, end - start));
}
start = end + w.size();
}
if (start < s.size()) {
result.push_back(s.substr(start));
}
return result;
}
```
这个函数的实现比较简单,使用了 C++ 标准库中的 string 和 vector 类型。其中,s 是要被分隔的字符串,w 是作为分隔符的字符串,默认为空白字符。
函数内部使用了一个 while 循环来不断查找分隔符,如果找到了就将分隔符前面的子串加入到结果向量中,然后将搜索起始位置更新为当前位置加上分隔符长度。最后,如果字符串的结尾还有剩余的字符,也需要将它们加入到结果向量中。
调用时可以只给出要分隔的字符串 s,此时默认使用空白字符作为分隔符。如果需要使用其他的分隔符,也可以将它作为第二个参数传入函数中。
阅读全文