#include <iostream>
using namespace std;
/*
1、计算原来的长度
2、找出空格的个数
3、计算新长度 newlength = length+2*空格数量
4、从后面开始复制,如果遇见空格,则换成20%
*/
void ReplanceBlank(char oristr[],int length)
{
if(oristr==nullptr || length <= 0)
return ;
int orilength = 0,numofblank = 0;
int i = 0;
while(oristr[i] != '\0')
{
orilength++;
if(oristr[i]==' ')
numofblank++;
i++;
}
int newlength = orilength + numofblank*2;
//定义两个指针,分别指向原始字符串的尾部和新字符串长度的尾部
int indexofori = orilength;
int indexofnew = newlength;
while(indexofnew > indexofori && indexofori >= 0)
{
if(oristr[indexofori] == ' ')
{
oristr[indexofnew--] = '0';
oristr[indexofnew--] = '2';
oristr[indexofnew--] = '%';
}
else
oristr[indexofnew--] = oristr[indexofori];
--indexofori;
}
}
int main()
{
char t[] = "helloworld";
ReplanceBlank(t,30);
cout<<t<<endl;
return 0;
}
剑指offer-4 替换空格
最新推荐文章于 2018-12-17 18:17:30 发布