C ++如何从字符串中删除字符(输入)

时间:2012-11-15 15:48:47

标签: c++ string erase

我正在尝试制作一个节目,虽然我已经完成它已经我需要更多的东西。因此,用户要求输入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;

我做错了什么?

2 个答案:

答案 0 :(得分:4)

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

此外,在=中使用if是分配,而非支票,您需要使用==

您使用i进行了迭代,但是使用x删除了

答案 1 :(得分:2)

您可以使用std::find删除第一次出现*来简化此操作:

str.erase(std::find(str.begin(), str.end(), '*'));