[英]C++ How can i erase a char from a string (input)
我正在尝试制作一个程序,尽管我已经完成了它,但我还需要更多东西。 因此,用户要求输入如果字符串包含 * 我想删除第一个 * 并计算输入
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;
我做错了什么?
非常小心,你需要使用方括号{}
来控制范围,而不是制表!
另外,在if
使用=
是赋值,而不是检查,您需要使用==
您使用i
进行迭代,但使用x
删除?
您可以通过使用std::find
删除第一次出现的*
来简化此操作:
str.erase(std::find(str.begin(), str.end(), '*'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.