std::string 按,分割字符串并分别获取各个子串 size_t ePos =str.find(‘,’); if (ePos != std::string::npos) {
时间: 2024-10-13 14:11:17 浏览: 60
`std::string` 是 C++ 标准库中的一个容器,它表示一个动态大小的字符序列,常用于处理文本数据。当你提到 `str.find(',')`,这是在查找字符串 `str` 中第一个逗号(',') 的位置。`find` 函数会返回第一次找到该字符的位置,如果没找到则返回 `std::string::npos`,这是一个特殊的值表示未找到。
这段代码的意思是:
1. 使用 `find` 函数查找字符串 `str` 中的第一个逗号。
2. 如果找到了逗号(即 `ePos` 不等于 `std::string::npos`),说明 `str` 包含至少两个部分可以被逗号分隔。
3. 这可能是为了分割字符串成两部分,或者更复杂的情况下分割成多个部分。
如果你想要将字符串按照逗号分割,并获取每个子串,你可以这样做:
```cpp
size_t start = 0;
std::vector<std::string> substrings;
while (ePos != std::string::npos) {
// 获取从start到ePos前的一个子串
auto substring = str.substr(start, ePos - start);
substrings.push_back(substring);
// 更新开始位置以便于下一次查找
start = ePos + 1;
ePos = str.find(',', start); // 继续查找下一个逗号
}
// 如果最后一个子串不包含逗号,则添加剩余的部分
if (start < str.length()) {
substrings.push_back(str.substr(start));
}
阅读全文
相关推荐


















