为了账号安全,请及时绑定邮箱和手机立即绑定

我的end()用法是不是有点错误啊?该怎么改?

我的end()用法是不是有点错误啊?该怎么改?

C++
ABOUTYOU 2023-04-22 22:18:39
#include<iostream>#include<string>using namespace std;int main(){string c;while(1){cin>>c;if(c.end()-1 == '*'){break;}}cout<<c<<endl;}
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

#include<iostream>
#include<string>
using namespace std;int main(){
string c;
while(1){
cin>>c;
if(*(c.end()-1) == '*'){
break;
}
}
cout<<c<<endl;
}
你的程序有点错误。end表示string中指向最后一个字符之后的地址。所以需要*(c.end()-1)取最后一个字符的内容。

查看完整回答
反对 回复 2023-04-25
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

#include<iostream>
#include<string>
using namespace std;int main(){
string c;
while(1){
cin>>c;
if(*(c.end()-1)== '*'){ //c.end() ;是一个迭代器,是个指针,前面加个* 就0k
break;
}
}
cout<<c<<endl;
}


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信