有个字段为3010080030070@20210820101001202@108111645@01030250002,用substr函数截取导第一个@到第二个@中间的字符
时间: 2024-08-13 21:05:16 浏览: 33
这个字符串中的字段看起来像是包含多个部分的信息,使用 `substr` 函数可以截取特定位置的子串。`substr` 函数的一般形式是 `substr(string, start, length)`,其中 `string` 是原始字符串,`start` 是起始位置(包括),`length` 是子串长度(如果省略则截取到字符串末尾)。
为了从第一个 `@` 到第二个 `@` 之间截取字符,假设我们只有一个 `@` 作为分隔点,我们可以这样操作:
```cpp
std::string input = "3010080030070@20210820101001202@108111645@01030250002";
size_t first_at_pos = input.find("@"); // 找到第一个 @ 的位置
if (first_at_pos != std::string::npos) {
size_t second_at_pos = input.find("@", first_at_pos + 1); // 在第一个 @ 后查找第二个 @
if (second_at_pos != std::string::npos) {
std::string substring = input.substr(first_at_pos + 1, second_at_pos - (first_at_pos + 1)); // 截取子串
std::cout << "截取后的子串: " << substring << std::endl;
} else {
std::cout << "没有找到第二个 @" << std::endl;
}
} else {
std::cout << "没有找到第一个 @" << std::endl;
}
```
阅读全文
相关推荐


















