Cześć, piszę program mający zliczać liczbę wystąpień podanego podciągu w ciągu. Niestety nie mogę operować na stringach (chyba) ani korzystać ze specjalnych funkcji, ponieważ jest to przedmiot "programowanie niskopoziomowe"... Czy ktoś widzi błąd w kodzie? Dlaczego on nie działa poprawnie? Proszę o pomoc.
#include <stdio.h>
#define N 1000
int dlugosc_ciagu(char tab[], int ile_elementow)
{
int licznik=0;
for(int i=0; i<ile_elementow; i++)
{
if(tab[i]!='\0')licznik++;
}
return licznik;
}
int main()
{
char ciag[N], podciag[N], warunek=0, l_wystapien=0;
printf("Podaj ciag: ");
scanf("%s",&ciag);
printf("Podaj podciag: ");
scanf("%s",&podciag);
for(int i=0; i<N; i+=dlugosc_ciagu(podciag,N))
{
for(int j=0; j<dlugosc_ciagu(podciag,N); j++)
{
if(ciag[i+j]==podciag[j])warunek=1;
else warunek=0;
}
if(warunek==1)l_wystapien++;
warunek=0;
}
printf("Liczba wystapien podanego podciagu w calym ciagu: %d",l_wystapien);
return 0;
}