私はすべてのスペース文字を '%20'文字列に置き換えようとしています。文字列クラスに組み込みのreplace関数を使用することを考えています。string :: replaceは正しく動作しません100%時間?
現在、私が持っている:
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);
}
}
}
私はアンダースコアはスペースを表す文字列 "_a_b_c_e_f_g__" に渡すと、私の出力は "%部20a%20B%20cは%の20e_f_g__" です。ここでも、アンダースコアはスペースを表します。
なぜ文字列の先頭付近のスペースが置き換えられますが、最後の方のスペースは変わっていませんか?