【基础操作】空格的替换

Posted on 2018-02-03 12:54  Unkn0wnnnnn  阅读(221)  评论(0)    收藏  举报

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 
总体就是从后往前预留出空间进行操作,具体实现源码如下:
class Solution{
public:
    void replaceSpace(char* str, int length){
        if(str==NULL)
            return;
        int OriginalLength=0;
        int CountOfBlank=0;
        for(int i =0;str[i]!='\0';i++){
            OriginalLength++;
            if(str[i]==' ')
                CountOfBlank++;
        }
        int len=2*CountOfBlank+OriginalLength;
        char* pStr1=str+OriginalLength;
        char* pStr2=str+len;
        while(pStr1<pStr2){
            if(*pStr1==' '){
                *pStr2--='0';
                *pStr2--='2';
                *pStr2--='%';
            }
            else{
                *pStr2--=*pStr1;
            }
            pStr1--;
        }
    }
};