替换空格

本来觉得挺简单的,写后一堆错。细思还是指针没理解透彻啊!

char *str其实可以等同于char str[]

复制字符串时要注意最后一个元素‘\0’也要复制!!
class Solution {
public:
    void replaceSpace(char *str,int length) {
        if(str==NULL||length<=0)return;
      int space=0,strlen=0;
        char *p=str;
        while(*p)
            {
            if(*p++ == ' ')space++;
            strlen++;
        }
        int len=strlen+space*2; 
        if(len>length) return;
 
        while(len>=0&&len>strlen)
            {
            if(str[strlen] == ' ')
                { 
                str[len--]='0';
                str[len--]='2';
                str[len--]='%';
                strlen--;
            }
            else 
            {
                str[len--]=str[strlen--];
            }
        }
        return;    
    }
};

 

posted on 2016-03-16 11:00  RenewDo  阅读(101)  评论(0编辑  收藏  举报

导航