我正在尝试制作一个节目,虽然我已经完成它已经我需要更多的东西。因此,用户要求输入IF如果字符串包含*我想删除第一个*和cout输入
getline(cin,str);
int k=str.length();
for(int i=0; i<=k; i++)
if(str[i]=='*')
string::iterator it;
it=str.begin()+i;
str.erase(it);
break;
cout<<str<<endl;
我做错了什么?
答案 0 :(得分:4)
要非常小心,你需要使用括号{}
来控制范围,而不是制表!
此外,在=
中使用if
是分配,而非支票,您需要使用==
您使用i
进行了迭代,但是使用x
删除了
答案 1 :(得分:2)
您可以使用std::find
删除第一次出现*
来简化此操作:
str.erase(std::find(str.begin(), str.end(), '*'));