剑指offer——替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
    void replaceSpace(char *str,int length) {
        int blank_len=0;
        int old_len=0,new_len=0;
        int i=0;
        while(str[i]!='\0')
        {
            old_len++;
            if(str[i]==' ')
                blank_len++;
            i++;
        }
        new_len=old_len+blank_len*2;
        if(new_len>length)  //length应该是str的总长度,如果新的长度在str中放不下,则return
            return ;
        i=new_len;
        str[i]='\0';
        i--;
        --old_len;
        while(i>0)
        {
            if(str[old_len]!=' ')
                str[i--]=str[old_len];
            else
            {
                str[i--]='0';
                str[i--]='2';
                str[i--]='%';
            }
            --old_len;
        }
        
 
    }
};

 

 

posted @ 2018-10-22 22:11  oren_nan  阅读(83)  评论(0)    收藏  举报