每日代码-字符串之修改空格

来源:互联网 发布:dns协议使用什么端口 编辑:程序博客网 时间:2024/06/05 07:41





class Solution {public:    void replaceSpace(char *str,int length) {              int count=0;//空格个数        int i=0;        while(str[i]!='\0')            {            if(str[i]==' '){count++;}                       i++;                     }         int finallength=i+2*count+1;//插入后字符串新的长度        int slen=finallength-1;//-1表示减去了'\0'的长度        if(finallength>length){return;}//表示没有空格则直接返回        else{                      while((slen>i)&&(i>=0))                {                if(str[i]==' ')                {                  str[slen--]='0';//索引递减形式来修改字符串                 str[slen--]='2';                 str[slen--]='%';                }                else{str[slen--]=str[i];}                                                i--;                            }                                }                            }};




通过题目可知即把字符串里的空格修改为“%20”,需考虑修改后的字符串的长度发生变化,则改变原字符串的长度,后再利用for循环判断是否空格后替换


0 0