⑴ 编写函数int replace_str(char *s,char *t,char *g),利用字符串处理函数将母串s中出现的所有子串t替换成子串g,返回替换的次数。 ⑵ 编写main函数,键盘输入母串s、子串t及子串g,调用replace_str函数替换,输出新串及替换次数。C语言
时间: 2024-02-15 16:05:41 浏览: 79
C语言写的一些字符串处理函数,包括连接,查找重复字符和获取字符串长度
5星 · 资源好评率100%
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int replace_str(char *s, char *t, char *g) {
int count = 0;
char *p = s;
while ((p = strstr(p, t)) != NULL) {
count++;
int len1 = strlen(s);
int len2 = strlen(t);
int len3 = strlen(g);
if (len2 == len3) {
memcpy(p, g, len2);
} else if (len2 > len3) {
memmove(p + len3, p + len2, len1 - (p + len2 - s) + 1);
memcpy(p, g, len3);
} else {
memmove(p + len3, p + len2, len1 - (p + len2 - s) + 1);
memcpy(p, g, len3);
}
p += len3;
s = p;
}
return count;
}
int main() {
char s[100], t[100], g[100];
printf("请输入母串s:");
scanf("%s", s);
printf("请输入子串t:");
scanf("%s", t);
printf("请输入子串g:");
scanf("%s", g);
int count = replace_str(s, t, g);
printf("新串为:%s\n", s);
printf("替换次数为:%d\n", count);
return 0;
}
```
函数replace_str接收三个参数,分别是母串s、子串t和子串g,返回替换的次数。函数内部使用了字符串处理函数strstr、memcpy和memmove,实现了替换子串的功能。
主函数中,首先从键盘输入母串s、子串t和子串g,然后调用replace_str函数进行替换,并输出新串和替换次数。
阅读全文