替换空格

Posted on 2016-04-05 10:29  徐岩  阅读(110)  评论(0)    收藏  举报

题目描述

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