我尝试调用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;
}
答案 0 :(得分:0)
尝试按值而不是const引用传递。 const ref无法更改
int convert(std::string line)
答案 1 :(得分:0)
尝试从convert()中删除const
。
使用const声明的任何内容都无法修改。