文章目录
题目
请实现一个函数,把字符串 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);