在 C++ 中,std::string
类的 substr
函数用于从字符串中提取一个子字符串。这个函数非常实用,常用于字符串处理任务。以下是 substr
函数的基本用法和细节:
函数原型
substr
函数的原型如下:
cpp
string substr(size_t pos = 0, size_t len = npos) const;
参数
- pos: 起始位置索引(从 0 开始),指明从哪个位置开始提取子字符串。
- len : 长度,指明需要提取的字符数。如果
len
超出了字符串的剩余长度,函数只会提取从pos
开始到字符串末尾的部分。 npos
是std::string
类的一个静态成员,表示最大可能的字符串长度。
返回值
- 返回一个
std::string
对象,包含从pos
开始的、长度为len
的子字符串。
示例
cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, World!";
// 提取从位置 7 开始的 5 个字符
string substr1 = str.substr(7, 5); // "World"
// 从位置 2 开始到字符串末尾
string substr2 = str.substr(2); // "llo, World!"
cout << substr1 << endl;
cout << substr2 << endl;
return 0;
}
注意事项
- 如果
pos
超出了字符串的长度,substr
会抛出std::out_of_range
异常。 - 如果
pos
有效但pos + len
超出了字符串的长度,将只提取从pos
开始到字符串末尾的部分。
substr
函数是处理 C++ 字符串的一个非常有用的工具,它简化了许多涉及字符串分割和提取的操作。