如何在 C++ 中使用内置方法将字符串按照特定分隔符分割成多个子串?
时间: 2024-10-21 18:09:35 浏览: 29
c++字符串分割的方法
在C++中,你可以使用`std::string`类的成员函数`substr()`或者STL中的`std::stringstream`和`std::getline()`来按特定分隔符拆分字符串。这里有两个常用的方案:
1. **使用`substr()`和`find()`**:
```cpp
#include <string>
std::string str = "apple,banana,orange";
char delimiter = ',';
std::vector<std::string> substrings;
size_t pos = 0;
while ((pos = str.find(delimiter)) != std::string::npos) {
// 分割子串并添加到vector中
substrings.push_back(str.substr(0, pos));
// 移动位置到下一个分隔符之后
str.erase(0, pos + 1);
}
// 处理最后一个未包含分隔符的子串
if (!str.empty()) {
substrings.push_back(str);
}
for (const auto& s : substrings) {
std::cout << s << std::endl;
}
```
2. **使用`std::stringstream`和`std::getline()`**:
```cpp
#include <sstream>
#include <string>
std::string str = "apple,banana,orange";
std::istringstream iss(str);
std::string item;
std::vector<std::string> substrings;
while (iss >> item) {
substrings.push_back(item);
}
for (const auto& s : substrings) {
std::cout << s << std::endl;
}
```
这里我们首先创建了一个istringstream对象,并将原始字符串传递给它。然后每次调用`>>`操作符会提取一个完整的字段直到遇到分隔符。
阅读全文