std::string 截取
时间: 2023-06-18 19:07:23 浏览: 64
如果您想截取一个字符串的一部分,可以使用 `substr` 方法。该方法需要两个参数,分别是截取的起始位置和截取的长度。
例如,以下代码会将字符串 `str` 的第2个字符开始的3个字符截取出来,并将结果存储在变量 `sub_str` 中:
```c++
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, world!";
std::string sub_str = str.substr(1, 3);
std::cout << sub_str << std::endl; // 输出 "ell"
return 0;
}
```
注意,`substr` 方法返回的是一个新的字符串,原字符串并不会被修改。如果您需要修改原字符串,可以使用 `erase` 方法删除需要截取的部分,然后使用 `insert` 方法插入新的字符串。
相关问题
std::string截取子串
你可以使用`std::string`的`substr`函数来截取子串。`substr`函数接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的长度。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
// 截取从索引位置2开始的5个字符
std::string subStr = str.substr(2, 5);
std::cout << subStr << std::endl; // 输出 "llo, "
return 0;
}
```
在上面的例子中,`str.substr(2, 5)`将返回从索引位置2开始的5个字符的子串"llo, "。
std::string 截取字符串
在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,依此类推。如果你尝试访问一个超出字符串长度的索引,那么你将得到未定义的行为。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)