C++函数-substr

substr就两种用法:

其返回值为字符串,可以直接用=。=

string s2="0123456789";
string ans1=s2.substr(1); //ans1="123456789";
string ans2=s2.substr(1,3);//ans2="123"; 位置从1开始长度为3
### C++ 中 `substr` 函数的使用方法 在 C++ 中,`substr` 是 `std::string` 类的一个成员函数,用于从字符串中提取指定位置和长度的子字符串。其功能强大且灵活,适用于多种场景。 #### 函数定义 `substr` 的函数原型如下: ```cpp string substr(size_t pos = 0, size_t len = npos) const; ``` 其中: - 参数 `pos` 表示起始索引的位置(从 0 开始计数),如果该值超出了原字符串的有效范围,则会抛出异常 `out_of_range`[^1]。 - 参数 `len` 表示要截取的字符数量,默认情况下为 `npos`,即从 `pos` 起直到字符串结束为止[^2]。 #### 返回值说明 `substr` 函数返回一个新的字符串对象,它包含了原始字符串中从索引 `pos` 开始的连续 `len` 个字符。需要注意的是,当 `(pos + len)` 超过字符串的实际长度时,实际返回的内容仅限于剩余部分[^3]。 #### 时间复杂度分析 调用一次 `substr` 方法的时间复杂度为 O(len),这里的 `len` 即为所请求的子串长度。这是因为新创建的字符串需要逐一遍历并复制相应数量的字符来初始化。 #### 示例代码展示 以下是一个完整的例子演示如何利用 `substr` 提取不同类型的子字符串: ```cpp #include <iostream> using namespace std; int main(){ string s = "abcdefghij"; // 截取前五个字符 string a = s.substr(0, 5); // 从第六个字符开始直至结尾 string b = s.substr(5); // 尝试获取超过有效区域的部分 string c = s.substr(5, 6); // 当起点越界时的行为测试 string d = s.substr(10); cout << a<< endl; // 输出 abcde cout << b<< endl; // 输出 fghij cout << c<< endl; // 输出 fghij (因为总长度不足) cout << d<< endl; // 输出为空"" } ``` 上述程序展示了四种典型的 `substr` 应用情形及其预期输出结果[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值