请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
作者:Krahets
链接:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/50ywkd/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
通过先申请一个大的buf,然后赋值给这个新申请buf的方法去实现。
char* replaceSpace(char* s){
int g_index = 0;
char *str = s;
int len = strlen(str);
char *res = (char *)malloc(sizeof(char) * (len * 3 + 1));
printf("len:%d\n", len);
memset(res, 0, sizeof(char) * (len * 3 + 1));
printf(" len :%d\n", len);
for (int i = 0; i < len; i++) {
printf("i:%d\n", i);
if (str[i] == ' ') {
printf("g_index:%d\n", g_index);
res[g_index++] = '%';
res[g_index++] = '2';
res[g_index++] = '0';
printf("g_index:%d\n", g_index);
}
else
{
res[g_index++] = str[i];
}
}
res[g_index] = '\0';
return res;
}