空格替换

空格替换为 %20

(1) 遍历字符串统计空格的个数n,以及字符串的长度len。
(2) 每增加一个空格字符串长度增加2,则替换后字符串长度为len1=len+2*n。
(3) 设置两个指针,一个指向原来字符串末尾len处,一个指向替换后总长度的末尾len1处。
(4) p1向前移动依次把经历的字符串放置p2所指位置,p2赋值后前移一位,直到p1遇到空格,此时p2处插入%20并前移三个。然后重复,直到p1=p2结束

void ReplaceBlank(char string[],int length)  
{  
    //length表示字符数组的总容量  
    if(string==NULL||length<=0)  
        return;//不合法的参数传入  
    int originallen=0,numberofblank=0;  
    //计算字符串总长度和空格个数  
    int i=0;  
    while(string[i]!='\0')  
    {  
        if(string[i]==' ')  
            numberofblank++;  
        ++originallen;  
        i++;  
    }  
    //计算新字符串长度  
    int newlength=originallen+numberofblank*2;  
    if(newlength>length)  
        return;//当替换后的长度大于总容量时无法替换  
    int neworiginal=originallen;  
    while(neworiginal>=0&&newlength!=neworiginal)  
    {  
        //开始字符串的移动和替换  
        if(string[neworiginal]==' ')  
        {  
            //遇到空格时用%20替换  
            string[newlength--]='0';  
            string[newlength--]='2';  
            string[newlength--]='%';  
        }  
        else{  
            //字符串移动  
            stringstring[newlength--]=string[neworiginal];  
        }  
        neworiginal--;//前移  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值