(C语言)字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hard__ball/article/details/77835981


思路:我们需要把空格替换成“%20”即相当于把一个字符替换成了三个字符,所以数组的长度的发生了变化,所以我们需要先计算出字符串中有多少空格,然后对字符数组进行扩容,然后再对空格进行替换。

下面复制粘贴我的函数代码,整体的全部代码自己补全一下就好啦:

void replaceBlank(Char* str,int length){
     int spaceNum=0;
        int newLength=0;
        int oldLength=length;
        int newBack=0;
        int oldBack=0;
        for(int i=0;i<length;i++){
            if(str[i]==' '){
               spaceNum++;
            }
        }
        newLength=oldLength+spaceNum*2;
        newBack=newLength-1;
        oldBack=oldLength-1;
        for(int i=oldBack;i>=0;i--){
            if(str[i]==' '){
                str[newBack--]='0';
                str[newBack--]='2';
                str[newBack--]='%';
            }else{
                str[newBack]=str[i];
                newBack--;
            }
        } 
}



猜你喜欢

转载自blog.csdn.net/Hard__ball/article/details/77835981