#include #include #include int main(){ char p[30][30]; char q[30][30]; int line=0; int n; int i,j; int count=0; int k,t=0; int flag=0; int l,m=0; char VN[30]={ '\0'}; char VT[30]={ '\0'}; printf("规则数:"); scanf("%d",&n); line=n; for(i=0;i<30;i++) for(j=0;j<30;j++) { p[i][j]='\0'; q[i][j]='\0'; } printf("请输入文法:\n"); for(i=0;i ='a'||(p[i][j]<='9'&&p[i][j]>='0')) { flag=0; for(t=0;VN[t]!='\0';t++) { if(VN[t]==p[i][j]) { flag=1;break; } } if(flag==0) { VN[l]=p[i][j]; l++; } } if(p[i][j]<='Z'&&p[i][j]>='A') { flag=0; for(t=0;t<30&&(VT[t]!='\0');t++) { if(VT[t]==p[i][j]) { flag=1; break; } } if(flag==0) { VT[m]=p[i][j]; m++; } } } } count=0; k=0; for(i=0;i ='a')||(p[i][j]<='Z'&&p[i][j]>='A')||(p[i][j]<='9'&&p[i][j]>='0')) { q[count][k]=p[i][j]; k++; } else { count++; k=0; } } count++; k=0; } flag=0; for(i=0;i