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