substr两个参数和一个参数有什么区别
时间: 2023-12-10 16:02:41 浏览: 18
在C++的字符串类`std::string`中,`substr()`函数用于从字符串中提取子串。它有两个不同的重载形式,具有不同的参数。
1. 两个参数的`substr()`函数形式:
```
std::string substr (size_t pos, size_t len) const;
```
这个形式的`substr()`函数接受两个参数:`pos`和`len`。其中,`pos`是要提取子串的起始位置(索引),`len`是要提取的子串的长度。返回一个新的`std::string`对象,包含从指定位置开始,并具有指定长度的子串。
示例:
```cpp
std::string str = "Hello, World!";
std::string sub1 = str.substr(7, 5); // 提取从索引7开始长度为5的子串
std::cout << sub1 << std::endl; // 输出:World
```
2. 一个参数的`substr()`函数形式:
```
std::string substr (size_t pos) const;
```
这个形式的`substr()`函数接受一个参数:`pos`,表示要提取子串的起始位置(索引)。返回一个新的`std::string`对象,包含从指定位置开始到字符串末尾的子串。
示例:
```cpp
std::string str = "Hello, World!";
std::string sub2 = str.substr(7); // 提取从索引7开始到字符串末尾的子串
std::cout << sub2 << std::endl; // 输出:World!
```
总结:
- 两个参数的形式用于指定起始位置和长度来提取子串。
- 一个参数的形式用于指定起始位置,提取从起始位置到字符串末尾的子串。
请根据具体的需求选择适合的`substr()`函数形式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)