用“%20”三个字符替换一个空格 2018-10-14

mac2022-06-30  68

用“ ”三个字符替换一个空格,本以为直接替换,一个字符替换一个字符可一个直接替换,多个字符替换一个字符,需要遍历原字符的长度,以及替换之后的长度,需要一个字符一个字符的替换

class Solution {

public:

void replaceSpace(char *str,int length) {

      if(str == NULL || length < 0)

          return ;

        int i = 0;

        int j = 0;

        while(str[i] != '\0')

        {

            if(str[i] == ' ')

            {

                j++;

            }

            i++;

        }

        int newlength = i + 2 * j;

        if(newlength > length)

            return ;

        while(i >= 0 &&  newlength > i)

        {

            if(str[i] == ' ')

            {

                str[newlength--] = '0';

                str[newlength--] = '2';

                str[newlength--] = '%';

            }

            else

                str[newlength--] = str[i];

            i--;

        }

}   

};

最新回复(0)