Witam. Mam do napisania projekt dekodera alfabetu Morse'a. Zrobiłem to tak, że w jednej tablicy jest słownik i na 8 miejscu jest rozkodowana litera (jedna litera jeden wiersz) a do drugiej tablicy wczytuję ciąg znaków (liter zakodowanych w alfabecie Morse'a). Każda zakodowana litera oddzielona jest spacją. Wczytywanie działa jak należy, lecz program nie chce porównywać dwóch tablic. Jeżeli znajdzie taki ciąg jaki jest podany, to sprawdza jaka jest litera na 8 miejscu w tym wierszu w slowniku i zapisuje ją do tablicy WYNIK. Czy mógłby mi ktoś pomóc w rozwiązaniu problemu dlaczego program się zawiesza w czasie wykonywania po podaniu ciągu? Jak poprawnie napisać porównywanie tych tablic? Z góry Dziękuję.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int i,a=0,b=0,s=0,len;
char c,decyzja,kod[100],wynik[50];
char t_slownik[38][9]={
{".- A"}, {"-... B"}, {"-.-. C"}, {"-.. D"}, {". E"}, {"..-. F"},
{"..-. 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"}
};
printf("DEKODER KODU MORSE\'A\n");
sleep(500);
printf("Program sluzy do dekodowania sygnalu Morse\'a.\n");
printf("Nalezy podac ciag znakow oddzielajac kazda zakodowana litere poprzez spacje.\n");
printf("Podaj zakodowany ciag znakow:\n");
i=0;
while ((c=getchar())!='\n')
{
kod[i] = c;
i++;
}
kod[i]='\0';
len=strlen(kod);
i=0;
while (i!=len)
{
if (kod[i]==' ')
{
s++;
i++;
}
else if (kod[i]==t_slownik[a][b])
{
i++;
b++;
}
else
{
a++;
i=s;
if (t_slownik[a][b]==' ')
wynik[s]=t_slownik[a][8];
}
}
len=strlen(wynik);
for (i=0;i<len;i++)
printf("%c",wynik[i]);
system("pause");
}