Morse Code Translator

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: