Print all possible Text from Morse Code
#include<stdio.h>
#include<string.h>
char output[50],k=0;
char code[26][20]={ "._","_...","_._.","_..",".",".._.","__.","....","..",".___","_._","._..",
"__","_.","___",".__.","__._","._.","...","_",".._","..._",".__","_.._","_.__","__.."};
int compare(char *in,char *code,int n,int c_len)
{
int i=0;
for(i=0;i<c_len&&in[i]!='\0';i++)
{
if(code[i]!=in[n+i])
return 0;
}
if(i<c_len&&in[i]=='\0')
return 0;
if(i==c_len)
return 1;
}
void convert(char *input,int n,int len)
{
int i,c_len;
if(len==n)
{
output[k++]='\0';
printf("%s\n",output);
k--;
}
else
{
for(i=0;i<26;i++)
{
c_len=strlen(code[i]);
if(compare(input,code[i],n,c_len))
{
output[k++]=65+i;
n+=c_len;
convert(input,n,len);
n-=c_len;
output[k--]='\0';
}
}
}
}
int main()
{
char input[50];
int n=0,len,i;
scanf("%s",input);
for(i=0;input[i];i++);
len=i;
convert(input,n,len);
return 0;
}
No comments:
Post a Comment