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

#include<iostream>
#include<string>
using namespace std;int main(){
string c;
while(1){
cin>>c;
if(c.end()-1 == '*'){
break;
}
}
cout<<c<<endl;
}

ABOUTYOU
浏览 127回答 2
2回答

慕码人8056858

#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)取最后一个字符的内容。

幕布斯7119047

#include<iostream>#include<string>using namespace std;int main(){string c;while(1){cin>>c;if(*(c.end()-1)== '*'){ //c.end() ;是一个迭代器,是个指针,前面加个* 就0kbreak;}}cout<<c<<endl;}
打开App,查看更多内容
随时随地看视频慕课网APP