c++ string 分割
时间: 2024-09-05 10:03:50 浏览: 74
在C++中,`std::string`类并没有内置的分割方法,但可以通过组合使用`std::string`提供的成员函数来实现分割字符串的需求。一种常见的方法是使用`std::find`和`std::string::substr`,或者利用迭代器遍历字符串。
以下是一个简单的例子,展示如何使用`std::find`和`std::string::substr`来分割字符串:
```cpp
#include <iostream>
#include <string>
#include <vector>
std::vector<std::string> split(const std::string &str, char delimiter) {
std::vector<std::string> tokens;
std::size_t start = 0;
std::size_t end = str.find(delimiter);
while (end != std::string::npos) {
tokens.push_back(str.substr(start, end - start));
start = end + 1;
end = str.find(delimiter, start);
}
tokens.push_back(str.substr(start, end - start)); // 添加最后一个子字符串
return tokens;
}
int main() {
std::string text = "Hello,World,This Is A Test";
char delimiter = ',';
std::vector<std::string> result = split(text, delimiter);
for (const auto &str : result) {
std::cout << str << std::endl;
}
return 0;
}
```
此代码定义了一个`split`函数,它接受一个字符串和一个分隔符作为参数,返回一个包含分割后的字符串的`std::vector<std::string>`。
还可以使用迭代器来实现类似功能,尤其是当分隔符不是一个固定字符时。
阅读全文