10115--Automatic Editing

 #include<stdio.h> #include<string.h> #define LOCAL char in[260],temp[260]; char rules[11][82],replace[11][82]; int find_replace(char* s,char* ru,char* rep) { int lena=strlen(s); int lenb=strlen(ru); int lenc=strlen(rep); //printf("len------%d %d %d/n",lena,lenb,lenc); int i,j,t,k; for(i=0,j=0;i<lena-lenb+1;) { k=i; while(k<lena&&j<lenb) { if(s[k++]!=ru[j++]) { i++;j=0; break; } } if(j==lenb)////replace { for(t=0;t<i;t++) { temp[t]=s[t]; //printf("%c/n",s[t]); } for(j=0;j<lenc;j++) { temp[t++]=rep[j]; //printf("%c/n",rep[j]); } for(;k<lena;k++) { temp[t++]=s[k]; //printf("%c/n",s[k]); } temp[t]='/0'; strcpy(s,temp); //printf("%s/n",s); i=0;lena=strlen(s);j=0; } } return 0; } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int num; while(1) { scanf("%d",&num); if(num==0) break; getchar(); //printf("-----%d/n",num);//////////// int i; for(i=0;i<num;i++) { gets(rules[i]); //getchar(); gets(replace[i]); //getchar(); } //for(i=0;i<num;i++) //printf("%s----%s/n",rules[i],replace[i]); gets(in); //getchar(); //printf("%s/n",in);/////// i=0; for(i=0;i<num;i++) { find_replace(in,rules[i],replace[i]); //printf("%s/n",in); } printf("%s/n",in); } return 0; }

你可能感兴趣的:(10115--Automatic Editing)