#include <cstdio> #include <cstring> char dic[10005][20]; int t; int del(char a[],char b[]) { int i; for(i=0;a[i];i++) if(a[i]!=b[i]) break; if(!strcmp(a+i+1,b+i)) return 1; return 0; } int rep(char a[],char b[]) { int i; for(i=0;a[i];i++) if(a[i]!=b[i]) break; if(!strcmp(a+i+1,b+i+1)) return 1; return 0; } int add(char a[],char b[]) { int i; for(i=0;b[i];i++) if(a[i]!=b[i]) break; if(!strcmp(a+i,b+i+1)) return 1; return 0; } int main() { int i,flag,a; char s[20]; t=0; while(scanf("%s",dic[t])!=EOF) { if(!strcmp(dic[t],"#")) break; t++; } while(scanf("%s",s)!=EOF) { if(s[0]==‘#‘) break; flag=1; for(i=0;i<t;i++) if(!strcmp(dic[i],s)) { printf("%s is correct",s); flag=0; break; } if(flag) { printf("%s:",s); for(i=0;i<t;i++) { a=strlen(s)-strlen(dic[i]); if(a==1 && del(s,dic[i])) printf(" %s",dic[i]); if(a==0 && rep(s,dic[i])) printf(" %s",dic[i]); if(a==-1 && add(s,dic[i])) printf(" %s",dic[i]); } } printf("\n"); } return 0; }
原文:http://www.cnblogs.com/You-Change/p/3521371.html