请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
char* replaceSpace(char* s){
int n = strlen(s),num_char=0,num_space=0;
for(int i = 0;i<n;i++){
if(s[i]==' '){
++num_space;
}
else{
++num_char;
}
}
int length = num_char+num_space*3;
char *res = (char*)malloc(sizeof(char)*(length+1));
res[length] = '\0';
int p1 = n-1, p2 = length-1;
while(p1>=0){
if(s[p1]!=' '){
res[p2--]=s[p1--];
}
else if(s[p1]==' '){
res[p2--]='0';
res[p2--]='2';
res[p2--]='%';
p1--;
}
}
return res;
}
res[length] = '\0';这一行一定要加,否则在leetcode运行时会heap-buffer-overflow