//替换空格(剑指offer,面试题4)
//从后向前替换
#include<iostream>
#include<string>
using namespace std;
void replace_the_blank(string str)
{
if(str.empty())
return;
int i=0;
int num_of_blank=0;
while(str[i]!='\0')
{
if(str[i]==' ')
num_of_blank++;
i++;
}
int oldlength=str.size();
int newlength=oldlength+num_of_blank*2;
string str2(num_of_blank*2,'a');
str+=str2;
while(oldlength>=0 && newlength>oldlength)
{
if(str[oldlength]==' ')
{
str[newlength--]='0';
str[newlength--]='2';
str[newlength--]='%';
oldlength--;
}
else
{
str[newlength--]=str[oldlength--];
}
}
cout<<str;
}
int main()
{
string str(" ");
replace_the_blank(str);
cout<<str;
return 0;
}
//
#include<iostream>
using namespace std;
void replace(char *str,int length)
{
if(str==NULL && length<=0)
return;
int i=0;
int originallength=0;
int numblank=0;
while(str[i]!='\0')
{
originallength++;
if(str[i]==' ')
numblank++;
i++;
}
int newlength=originallength+2*numblank;
int frontindex=originallength;
int rearindex=newlength;
while(frontindex>=0 && rearindex>frontindex)
{
if(str[frontindex]==' ')
{
str[rearindex--]='0';
str[rearindex--]='2';
str[rearindex--]='%';
}
else
str[rearindex--]=str[frontindex];
frontindex--;
}
}
int main()
{
char str1[]="we are happy.";
replace(str1,20);
cout<<str1;
return 0;
}
替换空格(从后向前替换)
最新推荐文章于 2023-05-02 13:38:34 发布