c++编写程序,读入一行字符(长度小于1000)a,再输入两个字符串b和c,将a中的所有字符串b替换成字符串c并输出。
时间: 2023-05-26 15:04:13 浏览: 105
C++实现将一个字符串中的字符替换成另一个字符串的方法
```
#include <stdio.h>
#include <string.h>
int main()
{
char a[1000], b[100], c[100], result[1000];
int len_a, len_b, len_c, i, j, k, m;
printf("请输入一行字符:\n");
fgets(a, sizeof(a), stdin);
printf("请输入要替换的字符串b:\n");
scanf("%s", b);
len_b = strlen(b);
printf("请输入要替换成的字符串c:\n");
scanf("%s", c);
len_c = strlen(c);
len_a = strlen(a);
i = 0;
j = 0;
k = 0;
while (i < len_a) {
if (a[i] == b[j]) {
j++;
if (j == len_b) {
for (m = 0; m < len_c; m++) {
result[k++] = c[m];
}
j = 0;
}
} else {
if (j != 0) {
for (m = i - j; m < i; m++) {
result[k++] = a[m];
}
j = 0;
}
result[k++] = a[i];
}
i++;
}
result[k] = '\0';
printf("替换后的字符串为:%s\n", result);
return 0;
}
```
注意:在读取一行字符时,使用fgets函数可以避免输入长度超过缓存区大小时的问题。另外,在替换字符串时,需要考虑到b与a中的字符可能不完全相同,因此需要记录下当前匹配到的位置,如果匹配失败,需要将之前匹配的部分加入到结果中,并将计数器j清空。
阅读全文