请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str == NULL && length<=0){
return;
}
//定义用到的变量
int original_length=0;
int new_length=0;
int blank=0;
int i;
for(i=0;i<length;i++){
if(str[i]!='\0'){//'\0'表示字符串的结束符号
original_length++;
}
if(str[i]==' '){
blank++;
}
}
// while(str[i++] != '\0'){ //遍历字符串
// ++original_length; //长度+1
//if(str[i] == ' '){
// ++blank; //遇到空格+1
//}
//}
new_length=original_length+2*blank;
int index_original=original_length;
int index_new=new_length;
while(index_original>=0 && index_new>index_original){
if(str[index_original]==' '){
str[index_new--]='0';
str[index_new--]='2';
str[index_new--]='%';
}else{
str[index_new--]=str[index_original];
}
index_original--;
}
}
};