#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char a[300],b[100],c[100],d[500]; int i,stage,n; char *p1,*p2,*p3,*q1,*q2; gets(a); gets(b); gets(c); p1=a; p3=c;n=1; while((*p1)!='\0')//判断匹配 { p2=b;q2=p1; stage=1; while(*p2!='\0') { if(*p2!=*q2) { stage=0; break; } p2++;q2++; } if(stage==1) { q1=q2;//找到a中与b匹配的最后一个字符的下一个址 break; } p1++; n++;//找到与b匹配的第一个字符的位置 } p1=a; for(i=0;i<n-1;i++)//匹配的第一个字符的位置的赋给d { d[i]=*p1; p1++; } for(i=i;*p3!='\0';i++)//把c连在d后面 { d[i]=*p3; p3++; } for(i=i;*q1!='\0';i++)//把a中与b匹配的最后一个字符之后的连在新d之后 { d[i]=*q1; q1++; } d[i]='\0';//给d字符串一个末尾(结束符'\0') printf("%s\n",d); return 0; }