剑指Offer 替换空格

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 
思路:
替换空格,先遍历一遍记录字符串中空格数量,算出替换后字符串长度,从后往前替换。
 
 1 //length为牛客系统规定字符串输出的最大长度,固定为一个常数
 2 class Solution {
 3 public:
 4     void replaceSpace(char *str,int length) {
 5         int i,p,q;
 6         int oldCount,spaceCount;
 7         
 8         i=oldCount=spaceCount=0;
 9         
10         while(str[i]!='\0')
11         {
12             oldCount++;
13             if(str[i]==' ')
14                 spaceCount++;
15             i++;            
16         }
17         int newLength=oldCount+spaceCount*2;
18                 
19         p=oldCount;
20         q=newLength;
21                 
22         while(p>=0)
23         {
24             if(str[p]==' ')
25             {
26                 str[q--]='0';
27                 str[q--]='2';
28                 str[q--]='%';                
29             }
30             else
31                 str[q--]=str[p];
32             
33             p--;
34         }
35     }
36 };

 

转载于:https://www.cnblogs.com/SeekHit/p/5755997.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值