剑指offer-替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
    void replaceSpace(char *str,int length) {
        if(str == nullptr)
        {
            return ;
        }
        int i = 0;
        int kg = 0;
        while(str[i] != '\0')
        {
            if(str[i] == ' ')
            {
                kg ++;
            }
            i++;
        }
        int old = length;
        int newlength = length + kg * 2;
        while(old >= 0 && newlength > old)
        {
            if(str[old] == ' ')
            {
                str[newlength--] = '0';
                str[newlength--] = '2';
                str[newlength--] = '%';
            }
            else
            {
                str[newlength--] = str[old];
            }
            old--;
        }
         
    }
};

 

posted @ 2019-06-01 17:03  冷眼旁观你的泪  阅读(116)  评论(0编辑  收藏  举报