2017-06-08 5 views
0

Ich versuche, löschen Sie() -Funktion, um Leerzeichen in String für Funktion, die Zeichenfolge in ganze Zahl konvertiert entfernen. Derselbe Code funktioniert in main(), aber innerhalb der Funktion funktioniert es nicht. Wie kann ich das beheben?Keine passende Mitgliedsfunktion für Aufruf zum "Löschen"

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' wird als' const' deklariert; Sie können nicht daran ändern. – songyuanyao

+0

Danke, es hat geholfen. –

Antwort

0

versuchen, Linie nach Wert anstelle von const Referenz übergeben. Die const ref kann nicht geändert werden

int convert(std::string line) 
+0

Danke, es hat mir wirklich geholfen. –

0

Versuchen Sie, const von convert() zu entfernen. Alles, was mit const deklariert wurde, kann nicht geändert werden.

Verwandte Themen