#include<stdio.h>
char t[100]={‘\0‘};
char prog[100];
char ch;
int i,p;
main(){
char ch;
char en;
char t[100],get[100],cv[100],ci[100];
int c,i,z,j,p,n,count;
printf(" Please input :");
count=0;
do{
ch=getchar();
t[count++]=ch;
}while(ch!=‘#‘);
count--;
p=0;
c=1;
z=0;
en=‘Y‘;
for(i=0;i<count;i++)
{
if(t[i]==‘|‘)
{
for(j=0;j<i;j++)
{
prog[j]=t[j];
if(prog[j]==‘.‘){
printf("f(%d,%c)=%d\n",z,t[j-1],c);
printf("f(%d,%c)=%c\n",c,t[j+1],en);
}
else if(prog[j]==‘*‘){
printf("f(%d,~)=%d\n",z,c);
printf("f(%d,~)=%c\n",c,en);
}
}
z=0;
c=1;
for(j=i+1;j<count;j++)
{
cv[j]=t[j];
if(cv[j]==‘.‘){
printf("f(%d,%c)=%d\n",z,t[j-1],c);
printf("f(%d,%c)=%c\n",c,t[j+1],en);
}
else if(cv[j]==‘*‘){
printf("f(%d,~)=%d\n",z,c);
printf("f(%d,~)=%c\n",c,en);
}
}
}
}
}
我的程序仅仅识别一个符号的自动机
有待改善
原文:http://www.cnblogs.com/zzl-0402/p/6097072.html