Monday , December 18 2017
Home / C / C Program for Implementation of Regular Expession

C Program for Implementation of Regular Expession

C Program for implementing DFA of Regular Expression
(a+aa*b)*
In this program you have to enter a string and output will be shown as  whether string will be accepted or not. Program is implemented using transition table not jumping on different states. It can be easily modifiable for other regular expressions. 

#include<stdio.h>
#include<conio.h>
#include<strings.h>

void main()
{
int table[2][2],i,j,l,status=0,success;
char input[100];
printf("Program for implmenting DFA of language (a+aa*b)*\n\n\nEnter Input String \n");
table[0][0]=1;
table[0][1]=-1;
table[1][0]=1;
table[1][1]=0;
scanf("%s",input);
l=strlen(input);

for(i=0;i<l;i++)
{
if(input[i]!='a'&&input[i]!='b')
{
printf("Value entered is wrong");
getch();
exit(0);
}
if(input[i]=='a')
status=table[status][0];
else
status=table[status][1];

if(status==-1)
{
printf("String not Accepted by this Language");
break;
}
}
if(i==l)
printf("String Accepted");
getch();
}

OUTPUT:

1
If you find any difficulty in this program than please comment you problem here. We will happily solve you problem.
tags: Compiler Design, DFA implementation, Regular expression implementation, C program for DFA
Also See:   c program to swap two numbers without using a third variable

Check Also

How to Solve Linear Equation in One Variable In C Programming?

C Program to Solve any Linear Equation in One Variable Find complete C program to ...

3 comments

  1. i need a program that accept 1101 as a substring..can you solve it? inform ASAP. Thanks.

  2. is there a possibility of making a generalize version of this program (convert any valid dfa to corresponding regular expression). please help…

Leave a Reply

Your email address will not be published. Required fields are marked *