Cracking The Coding Interview 1.5

时间:2023-03-09 08:17:24
Cracking The Coding Interview 1.5
//原文:
//
// Write a method to replace all spaces in a string with ‘%20’.
//
#include <iostream>
using namespace std;
char* replace(char * str)
{
if (str == NULL)
{
return NULL;
}
int size = strlen(str);
char *tem = new char[size+1];
int i = 0;
int num = 0;
while(str[i]!='\0')
{
if (str[i] == ' ')
{
num++;
}
tem[i] = str[i];
i++;
}
tem[i] ='\0'; char *s = new char[size + 1 + 2*num];
int ii=0;
int jj=0;
while(tem[ii]!='\0')
{
if (tem[ii] != ' ')
{
s[jj] = tem[ii];
ii++;
jj++;
}
else
{
s[jj]='%';
s[jj+1]='2';
s[jj+2]='0';
jj += 3;
ii++;
}
}
s[jj]='\0';
return s;
}
int main()
{
char s[] ="i am chinese";
cout<<replace(s)<<endl;
return 0;
}