substr(string ,pos,len)和s.substr(pos,len)区别

61 篇文章 2 订阅

1 区别

substr(string ,pos,len)是sql函数,第一个位置下标是1,而不是0,pos从1开始;
s.substr(pos,len)是C++函数,第一个位置下标是0,pos从0开始;
二者函数名字一样,用法不一样。

string str1 = "012345";
	string s1 = str1.substr(1,3);
	string s2 = substr('012345', 1, 3);

输出:
s1是C++用法: 123;
s2是sql用法:012;

2 s.substr(pos, len)

语法

substr(size_type _Off = 0,size_type _Count = npos)

参数:

_Off——所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0。
_Count——复制的字符数目
返回值——一个子字符串,从其指定的位置开始

一种构造string的方法
形式 : s.substr(pos, len)
返回值: string,包含s中从pos开始的len个字符的拷贝。pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s。
异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾

C++ 中substr函数有三种用法,如下所示:

假设string s(“student12”);

string x=s.substr()                 //默认时的长度为从开始位置到尾
string y=s.substr(5)               //获得字符串s中 从第5位开始到尾的字符串
string z=s.substr(5,3);         //获得字符串s中 从第5位开始的长度为3的字符串

3 substr(string ,pos,len)

sql中substr()函数

substr(string ,pos,len)

string:指定字符串
pos:规定字符串从何处开始,(这里的第一个位置是1而不是0)为正数时则从字段开始出开始,为负数则从结尾出开始。
len:要截取字符串的长度。(是从1开始计数而不是0)
//从pos开始的位置,一直截取到最后。
SBUSTR(str,pos);
//从pos开始的位置,截取len个字符(空白也算字符)。
SUBSTR(string ,pos,len);
注:
1.string - 指定的要截取的字符串。
2.pos- 必需,规定在字符串的何处开始。
3.正数 - 在字符串的指定位置开始
4.负数 - 在从字符串结尾的指定位置开始
5.如果pos为1(而不是0),表示从第一个位置开始。
6.length - 指定要截取的字符串长度

数据库的substr函数用法:

1、SUBSTR(str,pos,len): 从pos开始的位置,截取len个字符

substr(string ,1,3) :取string左边第1位置起,3字长的字符串。

所以结果为: str

substr(string, -1,3):取string右边第1位置起,3字长的字符串。显然右边第一位置起往右不够3字长。

结果只能是: g

substr(string, -3,3):取string右边第3位置起,3字长的字符串。

结果为: ing

2、SUBSTR(str,pos): pos开始的位置,一直截取到最后

substr(string ,4) : 从右第4位置截取到最后

结果是: ing

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-G-B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值