Ich versuche, jedes Leerzeichen durch '% 20' in einer Zeichenfolge zu ersetzen, und ich denke über die integrierte Ersetzungsfunktion für die String-Klasse.string :: Ersetzung funktioniert nicht 100% der Zeit?
Derzeit habe ich:
void replaceSpace(string& s)
{
int len = s.length();
string str = "%20";
for(int i = 0; i < len; i++) {
if(s[i] == ' ') {
s.replace(i, 1, str);
}
}
}
Als ich in der Zeichenfolge "_a_b_c_e_f_g__" übergeben, wo die Unterstrichen Raum repräsentieren, meine Ausgabe ist "% 20a% 20b% 20c% 20e_f_g__". Unterstriche stellen wiederum den Raum dar.
Warum werden die Leerzeichen am Anfang der Zeichenfolge ersetzt, aber die Leerzeichen am Ende nicht?