先计算空格数,然后从后往前将空格替换

class Solution {
public:
    void replaceSpace(char *str,int length) {
        int num = 0;
        int j = 0;
        for(int i=0; i<length; i++)
        {
            if(str[i] == ' ')
                num++;
        }
        for(int i=length-1; i>=0; i--)
        {
            if(str[i] != ' ')
            {
                str[length+2*num-1-j] = str[i];
                j++;
            }
            else
            {
                str[length+2*num-1-j] = '0';
                str[length+2*num-2-j] = '2';
                str[length+2*num-3-j] = '%';
                j = j+3;
            }
        }
    }
};