2017-06-08 16 views
0

文字列を整数に変換する関数のために、文字列中の空白を削除するためにerase()関数を呼び出します。同じコードはmain()では動作しますが、内部では機能しません。どうすれば修正できますか?"erase"への呼び出しに一致するメンバー関数がありません

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

'line'は' const'として宣言されています。あなたはそれを変更することはできません。 – songyuanyao

+0

ありがとうございました。 –

答えて

0

const参照の代わりに値渡しを試みてください。 const refは変更できません

int convert(std::string line) 
+0

ありがとう、本当に助けてくれました。 –

0

convert()からconstを削除してみてください。 constで宣言したものは変更できません。

関連する問題