substr函数

相对来说substr函数大家一定不陌生,我们知道substr(string,start,len)这种形式表示在string中在start位置返回长度len的字符串

例如 string str = "abcdefgh"

str.substr(2,3) = "def"

这里特殊说一下,如果substr中只有一个参数的话,会返回从那个位置之后的字符串

str.substr(2) = "defgh"

这个是今天新学习的技能哦~

SUBSTR 函数用于从字符串中提取子字符串,不同环境下该函数的使用方式略有不同,下面分别介绍其在 Oracle 和 C++ 中的使用方法。 在 Oracle 中,SUBSTR 函数的基本语法为 `SUBSTR(string, start_position, length)`。其中,`string` 是要进行截取的字符串,`start_position` 是开始截取的位置,若为正数则从字符串开头开始计数,若为负数则从字符串末尾开始计数,`length` 是要截取的字符数量。示例如下: ```sql -- 截取从第 1 个字符开始的 3 个字符 SELECT SUBSTR('HelloWorld', 1, 3) FROM DUAL; -- 返回结果:Hel -- 截取从第 2 个字符开始的 3 个字符 SELECT SUBSTR('HelloWorld', 2, 3) FROM DUAL; -- 返回结果:ell -- 从后面倒数第 3 位开始往后取 3 个字符 SELECT SUBSTR('HelloWorld', -3, 3) FROM DUAL; -- 返回结果:rld ``` 当 `length` 超出字符串的最大长度时,系统按字符串的最大数量返回;若 `start_position` 为负数且截取长度超出范围,会按实际可截取的字符返回[^1]。 在 C++ 中,`substr` 是 `std::string` 类的成员函数,其语法为 `s.substr(pos, len)`,从初始位置 `pos` 开始读取长度为 `len` 个字符。示例代码如下: ```cpp #include <iostream> #include <string> int main() { std::string s = "12345 abc"; // 从第 0 个位置开始截取 5 个字符 std::cout << s.substr(0, 5) << std::endl; // 从第 0 个位置开始截取 7 个字符 std::cout << s.substr(0, 7) << std::endl; // 从第 6 个位置开始截取 4 个字符 std::cout << s.substr(6, 4) << std::endl; // 当 pos+len-1 超过字符串的范围时,自动调整 len 的长度从而复制到字符串 s 的最后一个字符 std::cout << s.substr(6, 9) << std::endl; // 当 pos 超过字符串的范围时,substr 函数会抛出一个 out_of_range 的异常 // std::cout << s.substr(11, 1) << std::endl; return 0; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值