解此题不易,共用了我3个小时。
学到了一个重要算法:字符串交换。
#include<stdio.h>
#include<string.h>
#define N 80+10
#define M 255+10
int main()
{
int i,j,k,n,m;
char s1[N][N],s2[N][N];
char text[M];
char temp[M];
char *p;
//freopen("D:\\in.txt","r",stdin);
while(scanf("%d",&n)==1&&n)
{
getchar();
memset(text,'\0',sizeof(text));
memset(temp,'\0',sizeof(temp));
for(i=0;i<n;i++)
{
gets(s1[i]);
gets(s2[i]);
}
gets(text);
for(i=0;i<n;i++)
{
p=strstr(text,s1[i]);
if(p!=NULL)
{
strcpy(temp,p+strlen(s1[i]));
strcpy(p,s2[i]);
strcpy(p+strlen(s2[i]),temp);
i--;
}
}
printf("%s\n",text);
}
return 0;
}