用c++帮我写编写程序,读入一行字符(长度小于1000)a,再输入两个字符串b和c,将a中的所有字符串b替换成字符串c并输出。
时间: 2023-05-20 11:03:50 浏览: 94
以下是用 C 语言编写的程序,可以实现将字符串 a 中的所有字符串 b 替换成字符串 c 并输出:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char a[MAX_LEN], b[MAX_LEN], c[MAX_LEN];
fgets(a, MAX_LEN, stdin);
fgets(b, MAX_LEN, stdin);
fgets(c, MAX_LEN, stdin);
int len_a = strlen(a), len_b = strlen(b), len_c = strlen(c);
if (a[len_a - 1] == '\n') a[--len_a] = '\0';
if (b[len_b - 1] == '\n') b[--len_b] = '\0';
if (c[len_c - 1] == '\n') c[--len_c] = '\0';
char *p = strstr(a, b);
while (p != NULL) {
int len_p = strlen(p);
memmove(p + len_c, p + len_b, len_p - len_b + 1);
memcpy(p, c, len_c);
p = strstr(p + len_c, b);
}
printf("%s", a);
return 0;
}
```
对于输入的字符串 a、b、c,我们使用 fgets 函数读入,同时去掉末尾的换行符。然后使用 strstr 函数在字符串 a 中查找字符串 b,如果找到了就使用 memmove 函数将后面的部分向后移动 len_c - len_b 个字符,然后使用 memcpy 函数将字符串 c 复制到这个位置。最后输出修改后的字符串 a。
注意,这个程序只能替换第一次出现的字符串 b,如果要替换所有出现的字符串 b,需要在 while 循环中不断查找并替换。
阅读全文