题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
替换空格,先遍历一遍记录字符串中空格数量,算出替换后字符串长度,从后往前替换。
//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
void replaceSpace(char *str,int length) {
int i,p,q;
int oldCount,spaceCount; i=oldCount=spaceCount=; while(str[i]!='\0')
{
oldCount++;
if(str[i]==' ')
spaceCount++;
i++;
}
int newLength=oldCount+spaceCount*; p=oldCount;
q=newLength; while(p>=)
{
if(str[p]==' ')
{
str[q--]='';
str[q--]='';
str[q--]='%';
}
else
str[q--]=str[p]; p--;
}
}
};