day 2 替换空格

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

day 2 由于论文修改,耽搁了几天。

题目:替换空格,1 计算空格数,这里length是系统给的长度。

2 注意边界条件,两个指针,一个指向原始字符串的结尾,一个指向扩充数组的末尾

3 循环直到数组开头,若遇到空格,添加元素%20,否则复制原数组的值。

4 结束。注意两个指针的取值。

 2017 6-11, 周一

class Solution {
public:
void replaceSpace(char *str,int length) {
        //2017-6-7 周三 23:00
        //遍历字符,找空格数目m。
        //扩充数组length+m*2
        //1 判断地址非法不。
       if(str==NULL||length<=0) return;
        // 可以无值返回
       // char *p=str;
        int oldnum=0;
        int cnt=0;
        int i=0;
        //遍历找空格
        while(str[i]!='\0')
            {
         
             if(str[i]==' ') cnt++;
                oldnum++;
                i++;
            }
        //扩充数组长度
        //用什么函数控制,malloc还是new.
        int newlen;
        newlen=oldnum+cnt*2;
        
        //双指针beg end;//指针不能向前移动怎搞。
        //指针是数字讶
        //beg的位置
         int beg=oldnum;
        int  end=newlen;
        if(newlen>length) return;
        
        while(beg>=0&&oldnum<newlen)
        {
            //遇到空格
            if (str[beg]==' ')
               {
                str[end--]='0';
                str[end--]='2';
                str[end--]='%';
                }
            else
                str[end--]=str[beg];
            beg--;
        }


        


   


}
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值