调用“擦除”没有匹配的成员函数

时间:2017-06-08 06:42:49

标签: c++ string integer

我尝试调用erase()函数来删除字符串中的空格,以便将字符串转换为整数。相同的代码在main()中起作用,但在内部函数中却没有。我怎么修复它?

int convert(const string &line)
{

for (int i=0;i<line.length();i++)
{
    char wh=' ';
    if(line.find(wh))
        line.erase(find(line.begin(),line.end(),' '));

    //cout<<line[i];
}

if(line.length()==0)
    return 0;
int a=line[line.length()-1]-'0';
int b=convert(line.substr(0,line.length()-1))*10;
return a+b; 
}

2 个答案:

答案 0 :(得分:0)

尝试按值而不是const引用传递。 const ref无法更改

int convert(std::string line)

答案 1 :(得分:0)

尝试从convert()中删除const。 使用const声明的任何内容都无法修改。