剑指 Offer 05. 替换空格

文章目录


题目

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

思路

在C语言中,使用字符串数组,本题很明显是将一个空格换成三个字符,所以简单的替换是不行的,需要进行数组长度的延长,在这里直接定义新数组进行遍历即可

二、代码

#include <stdio.h>
#include <malloc.h>
#include<string.h>
char ss[] = "We are  happy";
char* replaceSpace(char* s) {
    char* ans = (char*)malloc(sizeof(char) * strlen(s) * 3 + 1);
    int i = 0;
    while (*s) {
        if (*s == ' ') {
            ans[i++] = '%';
            ans[i++] = '2';
            ans[i++] = '0';
        }
        else {
            ans[i++] = *s;
        }
        s++;
    }
    ans[i] = 0;
    return ans;
}
int main() {
    char *a=replaceSpace(ss);
    printf("%s", a);
	return 0;
}

总结

1.在进行字符串遍历时,使用如下代码

	while (*s) {
		s++;
	}

2.动态分配字符串数组长度

char* ans = (char*)malloc(sizeof(char) * snum);
上一篇:2022-01-05每日刷题打卡


下一篇:2021-09-18