替换空格
描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题解:此题先从前往后找空格的个数,然后再从前往后把空格替换成“%20”,注意后来的空间变大了。
#include<string.h>
class Solution {
public:
void replaceSpace(char str,int length) {
if(str == NULL||length<=0)
return;//不符条件返回
int len = 0;//原始长度
int count = 0;//空格数
int i=0;
while(str[i]!='\0')
{
if(str[i]==' ')
count++;
len++;
i++;
}
int newlen=len+count
2;//新串的长度
if(length<newlen)
return;//如果新串的长度过长,返回
int a=len;//从len开始因为要把‘\0’也复制下来
int b=newlen;
while(a>=0&&b>=0)
{
if(str[a]==' ')
{
str[b--]='0';
str[b--]='2';
str[b--]='%';
}
else{
str[b]=str[a];
b--;
}
a--;
}
return;
}
};