C++中以子字符串来分割字符串?
时间: 2024-09-15 17:04:51 浏览: 44
在C++中,你可以使用`std::string`类提供的`find()`和`substr()`方法,或者`std::getline()`函数配合`istringstream`来按子字符串进行分割。这里有一个简单的例子:
```cpp
#include <iostream>
#include <sstream>
#include <vector>
std::vector<std::string> splitString(const std::string &s, const std::string &delimiter) {
std::vector<std::string> tokens;
size_t pos = 0;
while ((pos = s.find(delimiter)) != std::string::npos) {
tokens.push_back(s.substr(0, pos)); // 分割前的部分并添加到结果向量
s.erase(0, pos + delimiter.length()); // 移除已处理的子串
}
if (!s.empty()) { // 如果剩余有未处理的子串,则添加到最后
tokens.push_back(s);
}
return tokens;
}
int main() {
std::string str = "Hello,World|This|Is|A|Test";
std::string delimiter = "|";
std::vector<std::string> result = splitString(str, delimiter);
for (const auto& token : result) {
std::cout << token << "\n";
}
return 0;
}
```
在这个示例中,我们创建了一个名为`splitString`的函数,它接受一个原始字符串和一个分隔符作为输入,然后返回一个包含分割后的子字符串的向量。
阅读全文