美文网首页
替换空格

替换空格

作者: 极速魔法 | 来源:发表于2017-07-27 16:03 被阅读12次

    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    #include <iostream>
    
    using namespace std;
    
    class Solution {
    public:
        void replaceSpace(char *str,int length) {
            int cnt=0;
    
            if(length==0){
                return;
            }
            for(int i=0;i<length;i++){
                if(str[i]==' '){
                    cnt++;
                }
            }
            if(cnt==0){
                return;
            }
            int newLen=length+2*cnt;
    
            int lo=length-1,hi=newLen-1;
    
            while(lo>=0){
                
                if(str[lo]==' '){
                    //move hi ,after 02%,move lo;
                    //otehrwise,when copy 02%,lo move,skip "are"
                    str[hi--]='0';
                
                    str[hi--]='2';
                
                    str[hi--]='%';
                    lo--;
                    
                    cnt--;
                } else{
                    str[hi--]=str[lo--];
                }
            }
    
        }
    };
    
    int main(){
    
        char string[]={'W','e',' ','a','r','e',' ','h','a','p','p','y','.','\0'};
        int length=14;
        Solution().replaceSpace(string,length);
        for(int i=0;i<18;i++){
            cout<<string[i];
        }
        cout<<endl;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:替换空格

          本文链接:https://www.haomeiwen.com/subject/glgzkxtx.html