std::string 截取字符串
时间: 2024-01-18 08:04:04 浏览: 184
在C++中,`std::string`类提供了许多方法来截取字符串。以下是一些常用的方法:
1. `substr()` 方法:这个方法返回一个新的字符串,该字符串是原始字符串的一个子串。它接受两个参数:起始索引和结束索引。例如:
```cpp
std::string str = "Hello, world!";
std::string sub = str.substr(7, 5); // sub 是 "world"
```
2. `begin()` 和 `end()` 方法:这两个方法返回指向字符串开始和结束的迭代器。你可以使用这些迭代器来创建一个范围,然后使用`std::slice()`或`std::remove_range()`来截取字符串。例如:
```cpp
std::string str = "Hello, world!";
auto it = str.begin();
std::slice slice(it, it + 5, str.size());
std::string sub = slice.to_string(); // sub 是 "world"
```
3. `std::string` 的切片操作符(`[]`):你也可以直接使用切片操作符来截取字符串。例如:
```cpp
std::string str = "Hello, world!";
std::string sub = str.substr(7); // sub 是 "world!"
```
请注意,这些方法可能会改变原始字符串的内容。如果你不希望改变原始字符串,你需要创建一个新的字符串来保存截取的内容。
最后,要记住的是,字符串的索引是从0开始的。这意味着第一个字符的索引是0,第二个字符的索引是1,依此类推。如果你尝试访问一个超出字符串长度的索引,那么你将得到未定义的行为。
阅读全文