1.题目:
请实现一个函数,把字符串
s
中的每个空格替换成"%20"。
2.示例:
输入:s = "We are happy." 输出:"We%20are%20happy."
3.解题思路:
本题最简单的方法就是遍历字符串,如遍历到的字符不是空格,就保存到新建的数组中。若遍历到的字符是空格,则拼接%20到字符串中。
4.题解如下:
char* replaceSpace(char* s){
char *ret;
int n = strlen(s);//计算字符长度
ret = malloc(sizeof(char)*3*n+1);//开辟一块内存空间,来保存我们的结果
int j=0;
for(int i=0;i<n;i++){//本循环来遍历字符串s
if(s[i]!=' '){
ret[j++] = s[i];//保存不是空格的结果
}else{
ret[j++] = '%';
ret[j++] = '2';
ret[j++] = '0';
}//保存为空格的结果
}
ret[j++] = '\0';
return ret;
}
注意:末尾在返回数组之前,最后一个字符要赋值为'\0',否则会导致执行出错!在新建的字符串数组中,下标要记得自增,否则会被覆盖。