std::string 如何使用 :: 分割字符串,并获取最后一个子字符串
时间: 2024-11-06 22:16:31 浏览: 8
在C++中,`std::string` 类型可以使用 `substr()` 函数配合 `::` 运算符来分割字符串并获取特定部分。`substr()` 函数接受两个参数,第一个是开始位置(包括),第二个是结束位置(不包括)。如果想要从某个特定的分隔符处分割,可以先找到该分隔符的位置,然后基于这个位置计算。
下面是一个示例,假设我们要从一个由 `::` 分割的字符串中获取最后一个子字符串:
```cpp
#include <iostream>
#include <string>
std::string get_last_substring(const std::string& str) {
size_t pos = str.rfind("::"); // 查找最右边的 '::'
if (pos == std::string::npos) { // 如果没有找到,则返回整个字符串
return str;
}
return str.substr(pos + 2); // 返回从分隔符之后的部分,加2是因为我们需要跳过两个字符(':')
}
int main() {
std::string str = "my::namespace::last_part";
std::cout << "Last substring: " << get_last_substring(str) << std::endl;
return 0;
}
```
在这个例子中,`get_last_substring()` 函数会查找字符串中最后一次出现 `::` 的位置,然后返回从那个位置到字符串结尾的所有内容。
阅读全文