#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
char* list[100];
char* listF[100];
int top=-1;
int topF=-1;
void checkKey(int f,int t,char* ss)
{
int fo=0;
for(int k=0;k<=top;k++)
{
char* pt=list[k];
fo=0;
for(int j=0;j<strlen(pt);j++)
{
if((f+j)<strlen(ss)&&ss[f+j]==pt[j]&&(f+j)<t)
{
fo=1;
}
else
{
fo=0;
break;
}
}
if(fo==1)
{
printf("(key)");
return;
}
}
}
void printUpto(char* str,int f,int t)
{
printf(" ");
for(int i=f;i<=t;i++)
printf("%c",str[i]);
}
int subIt(int f,char* ss,char* mc)
{
int fo=0;
int last=0;
for(int i=f;i<strlen(ss);i++)
{
fo=0;
int en=0;
int plen=0;
for(int k=0;k<=topF;k++)
{
en=1;
char* pt=listF[k];
plen=strlen(pt);
for(int j=0;j<strlen(pt);j++)
{
if((i+j)<strlen(ss)&&ss[i+j]==pt[j])
fo=1;
else
{
fo=0;
break;
}
}
if(fo==1&&i!=0)
{
checkKey(last,i,ss);
printUpto(ss,last,i-1);
if(i!=strlen(ss)-1)
printUpto(ss,i,i+plen-1);
last=i+plen;
en=0;
i=i+plen-1;
}
}
}
return -1;
}
void addList(char* str)
{
top+=1;
list[top]=str;
}
void addFList(char* str)
{
topF+=1;
listF[topF]=str;
}
void fill()
{
addList("if");
addList("else");
addFList("(");
addFList(")");
addFList(" ");
}
void Match(char* str)
{
int v=0;
int next=0;
int y=subIt(next,str,listF[0]);
if(y!=-1&&y!=0)
{
printUpto(str,next,y-1);
next=y;
}
}
int main()
{
char ip[500];
int len;
fill();
puts("Enter your message");
gets(ip);
len=strlen(ip);
strcat(ip,"(");
Match(ip);
getch();
return 0;
}
#include<conio.h>
#include<math.h>
#include<string.h>
char* list[100];
char* listF[100];
int top=-1;
int topF=-1;
void checkKey(int f,int t,char* ss)
{
int fo=0;
for(int k=0;k<=top;k++)
{
char* pt=list[k];
fo=0;
for(int j=0;j<strlen(pt);j++)
{
if((f+j)<strlen(ss)&&ss[f+j]==pt[j]&&(f+j)<t)
{
fo=1;
}
else
{
fo=0;
break;
}
}
if(fo==1)
{
printf("(key)");
return;
}
}
}
void printUpto(char* str,int f,int t)
{
printf(" ");
for(int i=f;i<=t;i++)
printf("%c",str[i]);
}
int subIt(int f,char* ss,char* mc)
{
int fo=0;
int last=0;
for(int i=f;i<strlen(ss);i++)
{
fo=0;
int en=0;
int plen=0;
for(int k=0;k<=topF;k++)
{
en=1;
char* pt=listF[k];
plen=strlen(pt);
for(int j=0;j<strlen(pt);j++)
{
if((i+j)<strlen(ss)&&ss[i+j]==pt[j])
fo=1;
else
{
fo=0;
break;
}
}
if(fo==1&&i!=0)
{
checkKey(last,i,ss);
printUpto(ss,last,i-1);
if(i!=strlen(ss)-1)
printUpto(ss,i,i+plen-1);
last=i+plen;
en=0;
i=i+plen-1;
}
}
}
return -1;
}
void addList(char* str)
{
top+=1;
list[top]=str;
}
void addFList(char* str)
{
topF+=1;
listF[topF]=str;
}
void fill()
{
addList("if");
addList("else");
addFList("(");
addFList(")");
addFList(" ");
}
void Match(char* str)
{
int v=0;
int next=0;
int y=subIt(next,str,listF[0]);
if(y!=-1&&y!=0)
{
printUpto(str,next,y-1);
next=y;
}
}
int main()
{
char ip[500];
int len;
fill();
puts("Enter your message");
gets(ip);
len=strlen(ip);
strcat(ip,"(");
Match(ip);
getch();
return 0;
}
Thanks
No comments:
Post a Comment