std::string 按=分割字符串并分别获取各个子串 size_t ePos =str.find('='); if (ePos != std::string::npos) {
时间: 2024-10-13 10:11:13 浏览: 21
find-replace-string(VB).rar_VB 字符串_string_vb FindReplace_vb stri
在C++中,如果你想要使用`std::string`的`find()`函数按`=`分割字符串,你可以这样做:
首先,你需要找到第一个等号的位置,这通过`str.find('=')`完成。`size_t ePos`存储的就是等号的位置索引。`npos`是一个特殊的常量,表示找不到的结果,所以我们需要检查返回值是否等于`npos`。
```cpp
std::string str = "key1=value1, key2=value2, key3=value3";
size_t ePos;
// 遍历整个字符串,直到找到等号或到达结尾
while ((ePos = str.find('=')) != std::string::npos) {
// 如果找到了等号,我们就得到了一个子串,可以从前一个等号到当前等号的位置
std::string subStr = str.substr(0, ePos);
// 然后去掉已处理的部分
str.erase(0, ePos + 1); // +1是因为要跳过等号
std::cout << "Key: " << subStr << ", Value: ";
// 接下来继续查找下一个键值对,注意这里再次寻找等号
// ... (重复上述过程)
}
```
这段代码会打印出每个键值对,例如:“Key: key1, Value: value1”。
阅读全文