繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM