mors alfabesi mors alfabesinde girilen cümleyi deşifre eder//bu program mors alfabesiyle yazılmış cümleyi çözer
#include<stdio.h>
#include<string.h>
//değişken tanımlama
char b[100][10];
char str[100],*p;
char mors[40][10]={{".-"},{"-..."},{"-.-."},{"-.."},{"."},{"..-."},{"--."},{"...."},{".."},
{".---"},{"-.-"},{".-.."},{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."},{"..."},
{"-"},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".----"},{"..---"},
{"...--"},{"....-"},{"....."},{"-...."},{"--..."},{"---.."},{"----."},{"-----"},{" "}};
char alfa[37]={'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y ','Z','1','2','3','4','5','6','7','8','9','0',' '};
int i=0,j=0,m,t,n=0;
void main()
{
//dışarıdan cümle okuma
printf("mors alfabesinden bir cumle:");
gets(str);
//pointerla cümlenin başından sonuna doğru for döngüsüyle ilerledim
//boşluğa kadar olan her mors harf kodunu iki boyutlu bir diziye aktardım
for(p = str ;*p != '\0' ;p++)
{
if(*p!=' ')//boşluktan farklıysa pointerdaki değeri diziye atarak sütun indisini bir arttıdım
{
b[i][j]=*p;
j++;
}
if(*p==' ')//boşluksa satır indisini arttırdım
{
i++;j=0;
if(*(p+1)==' ') { b[i][j]=' ';i++;j=0;}//boşluktan sonraki karakter yine boşluksa
} //o satıra bir boşluk bırakıp aşağı satıra indim
}
n=i;
for(m=0;m<=n;m++)//iki boyutlu diziye aktardığım karakterleri satır satır oku¤¤¤¤¤
{ //mors olarak tanımladığım dizide arattım ,sırasındaki karakteri alfa dizisinden yazdırdım
for(t=0;t<=37;t++)
if(strcmp(b[m],mors[t])==0)
printf("%c",alfa[t]);
}
printf("\n");
}