c++用stustr截取字符串,字符串最后一位的")"无法去掉

程序从数据库中读取数据,读取到的编号总是“000)”这种格式。

只能依靠中间变量去除这个“)”,不能直接截取不带“)”的字符串,求助各位

可以看到sID这个字符串无论是截到倒数第二位还是倒数第三位都带着“)”

可能跟你写入有关吧,这个括号是你自己写进去的吗?

那你再往前截取一位就好了。

不好意思各位。。。。标题打错字了 应该是substr

你的substr的第二个参数,不要使用长度,应该是找‘)’的位置,然后用')'的位置减去'('的位置,再减去1,这样才能保证你得到的是()之间的内容,即:

sId = s.substr(s.find('(')+1,s.find(')') - s.find('(')-1)

 

各位说的方法我都试了下 还是不行

sID.erase(sID.end() - 1); 用这个试试?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m