substr
函数是 C++ 中 std::string
类的一个成员函数,用于提取字符串的子字符串。它的基本语法如下:
std::string substr(size_t pos = 0, size_t len = npos) const;
参数:
pos
:要开始提取子字符串的位置(索引),默认为0
,表示从字符串的第一个字符开始。len
:要提取的字符数,默认为npos
,表示提取到字符串的末尾。
返回值:
返回一个新的字符串,包含从指定位置开始的子字符串。
使用示例:
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
// 从索引 7 开始提取 5 个字符
std::string sub = str.substr(7, 5);
std::cout << sub << std::endl; // 输出 "World"
// 从索引 0 开始提取到字符串末尾
std::string sub2 = str.substr(0);
std::cout << sub2 << std::endl; // 输出 "Hello, World!"
return 0;
}
注意事项:
- 越界:如果
pos
超过了字符串的长度,会抛出std::out_of_range
异常。 - 负值:不能使用负值作为参数,否则会导致未定义行为。
- 修改原字符串:
substr
不会修改原字符串,而是返回一个新的字符串。
通过 substr
方法,可以方便地从一个大字符串中提取出所需的部分。