题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
void replaceSpace(char *str,int length) {
char *ch=(char *)malloc(sizeof(char)*length);
strcpy(ch,str);
int index=0;
int i=0;
while(ch[i]){
if(ch[i]==' '){
str[index++]='%';
str[index++]='2';
str[index++]='0';
}else{
str[index++]=ch[i];
}
i++;
}
str[index]='\0';
}
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<cassert>
//方法2
void replaceSpace(char* str){
if (str == NULL)
return;
int spaceNum = 0;
char* pstr = str;
while (*pstr != '\0'){
if (*pstr == ' ')
spaceNum++;
pstr++;
}
int len = strlen(str);
for (int i = len; i >= 0; i--){
if (str[i] == ' '){
str[i + 2 * spaceNum] = '0';
str[i + 2 * spaceNum-1] = '2';
str[i + 2 * spaceNum-2] = '%';
spaceNum--;
}
else{
str[i + 2 * spaceNum] = str[i];
}
}
}
int main(){
char str[] = "how are you";
replaceSpace(str);
std::cout << str << std::endl;
std::cin.get();
}