std::string 按=分割字符串并分别获取各个子串
时间: 2024-10-13 20:11:18 浏览: 30
在C++中,`std::string` 类型的对象通常使用 `substr()` 函数或者 `find()` 和 `getline()` 方法进行按字符或指定分隔符(如`=`, `,`, ` `等)分割。这里我们以`=`作为分隔符为例:
```cpp
#include <iostream>
#include <sstream> // 引入istringstream用于处理输入流
void splitString(const std::string &str) {
std::istringstream iss(str); // 创建一个输入流从原始字符串开始
std::string token; // 存储每个子串
while (iss >> token) { // 当输入流可以读取到下一个token时...
std::cout << "Token: " << token << std::endl;
}
if (iss.fail()) { // 检查是否还有未读完的部分
std::cerr << "Warning: Splitting failed with unexpected input" << std::endl;
}
}
int main() {
std::string str = "key1=value1, key2=value2, key3=value3";
splitString(str);
return 0;
}
```
在这个例子中,`splitString` 函数会将字符串按照`=`分割,并打印出每个子串。如果字符串中存在非分隔符的其他字符,`iss >> token` 会在遇到非数字或非字母字符时停止。
阅读全文