将一个字符串中的空格字符替换成另外一个字符串

时间:2022-10-23 22:28:40

将一个字符串中的一个空格替换成另外一个字符串,首先需要解决字符串长“%20”就需要每遇到一个空格字符就得增加两个长度,接下来就是遍历字符串,并且遇到空格就替换,可想而知,从前往后遍历比较麻烦繁琐,所以这里我选择从后往前遍历,具体代码如下:

class Solution {
public:
void replaceSpace(char *str,int length) {
int newlength=0;
int spacecount=0;
//int i=0;
char *tmp=str;
while(*tmp!='\0')//计算目的字符串的长度并且计算空格的个数
{
newlength++;
if(*tmp++==' ')
{
spacecount++;
}
}
int newsize=newlength+spacecount*2;
str[newsize]='\0';
int j=newsize-1;
for(int i=newlength-1;i>=0;i--)/。从后往前替换的过程
{
if(str[i]!=' ')
{
str[j--]=str[i];
}
else
{
str[j--]='0';
str[j--]='2';
str[j--]='%';
}
}
}
};