思想就是不替换字符串,只需要匹配(查找)字符串,当匹配到后就输出替换的字符串后,原来的继续输出。
简单方法,不涉及字符串的插入与删除,
查找字符串只要 需要查询的那个字符串走到'\0'
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
char str[101], a[101],b[100];
int main()
{
while(gets(str)){
gets(a);
gets(b);
int lena = strlen(a), lenb = strlen(b);//记录长度
int j,i,k;
for(int i=0; str[i] != '\0'; i++)
{
//查找有没有此字符串,如果不等就跳出循环,如果等于,当前i就是齐字符串起始位置
for(k=i, j=0; a[j]!='\0' ; j++,k++ )
{
if(a[j] != str[k])
break;
}
//如果有相同的字符串,输出b串
if(a[j] =='\0' )
{
printf("%s",b);
i+=lena-1;
}
//没有匹配的
else{
putchar(str[i]);
}
}
printf("\n");
}
return 0;
}