-2

我正在尝试制作一个程序,尽管我已经完成了它,但我还需要更多东西。因此,如果字符串包含 * 我想擦除第一个 * 并 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;

我做错了什么?

4

2 回答 2

4

要非常小心,您需要使用括号{}来控制范围,而不是制表!

此外,=在 a中使用if是分配,而不是检查,您需要使用==

您迭代使用i但您删除使用x

于 2012-11-15T15:51:38.240 回答
2

您可以通过std::find删除第一次出现的 来简化这一点*

str.erase(std::find(str.begin(), str.end(), '*')); 
于 2012-11-15T15:54:06.377 回答