关于C++里string的一个小问题!!!求解答!

在C++里有一个类是string,string类型的+是实现的拼接二段字符串。现在有一个stringss,我希望去掉它最后一个字母,比如ss如果是"a+b+c+d+",我... 在C++里有一个类是string,string类型的 + 是实现的拼接二段字符串。
现在有一个string ss,我希望去掉它最后一个字母,比如ss如果是"a+b+c+d+",我想把最后的多余的那个+去掉,使得ss变为"a+b+c+d"。。。求程序代码!!C++的,要用VC 6.0环境!!在实际中不一定结尾是+,也有可能是其他符号,总之要把最后一个符号去掉。。。。>_<
既然+都可以是拼接,为啥C++没有把-定义为裁剪啊,这肿么做啊!!!
展开
 我来答
龍__鳳
2014-04-04 · TA获得超过2346个赞
知道小有建树答主
回答量:948
采纳率:0%
帮助的人:1403万
展开全部
#include <string>
#include <iostream>
using namespace std;

int main()
{
    string ss("a+b+c+");
    cout<<ss<<endl;
    ss[ss.size()-1] = '\0';//有这么麻烦么?直接把最后一个字符改成结束符'\0'就好了
    cout << ss << endl;
    return 0;
}

为何逸云
2014-04-04 · TA获得超过229个赞
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:84.7万
展开全部
#include <string>
#include <iostream>
using namespace std;
//VS2008SP1
int main()
{
std::string ss("a+b+c+");
if (!ss.empty())
{
ss.erase(--ss.end());
}
cout << ss << endl;
return 0;
}
追问
我用的VC 6.0,编译后有error,显示为“error C2105: '--' needs l-value”
追答
ss = ss.substr(0, ss.size() - 1);
ss.erase(ss.end() - 1);
这两个方法你试试。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨润利020
2014-04-04 · TA获得超过171个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:263万
展开全部
string 的加操作 没有加上符号吧,额哦
清除最后一个字符用函数string::pop_back
追问
没有pop_back这个函数呢啊。。。。我是用的VC 6.0,编写的cpp文件
追答
囧,这样编译有问题》》??????

#include
#include
using namespace std;

int main()
{
string ss("a+b+c+");
ss.pop_back();

cout << ss << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
silmerusse
2014-04-04 · TA获得超过6640个赞
知道大有可为答主
回答量:2919
采纳率:33%
帮助的人:2097万
展开全部
ss.pop_back();
追问
没有pop_back这个函数呢啊。。。。我是用的VC 6.0,编写的cpp文件
追答
嗯 这个是c++11标准里的
不支持的话。。。 ss.erase(ss.end() - 1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unnamedfish
2014-04-04
知道答主
回答量:11
采纳率:0%
帮助的人:9.9万
展开全部
ss=ss.substr(0,ss.length()-1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式