描述
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
数据范围:0 - len(s) - 1000 \ 0≤len(s)≤1000 。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
示例1
输入:
"We Are Happy"
返回值:
"We%20Are%20Happy"
示例2
输入:
" "
返回值:
"%20"
#include<stdio.h>
#include <stdlib.h>
char* replaceSpace(char* s) {
int i = 0, j = 0;
int num = 0;
while (s[i] != '\0') { //检测有多少个空格
if (s[i] == ' ') {
num++;
}
i++;
}
char *result = (char *)malloc(i + (num * 3)); //根据空格数量提前创建空间
if (NULL == result) {
return NULL;
}
i = 0;
while (s[i] != '\0') { //往里面存数据
if (s[i] == ' ') {
result[j] = '%';
result[j + 1] = '2';
result[j + 2] = '0';
j += 2;
} else {
result[j] = s[i];
}
j++;
i++;
}
return result; //返回结果
}
int main(int argc, char const *argv[])
{
char a[] = "11 1 1 111";
char *b = NULL;
b = replaceSpace(a);
printf("%s\n", b);
if (b != NULL) {
free(b);
b = NULL;
}
return 0;
}