Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int dlugosc(char *lan);
- int sprawdz(char *tekst, char *wzor);
- int* sprawdz_w(char *teskt, char *wzor, int *ilosc);
- int main()
- {
- char tekst[100];
- char wzor[5];
- int i=0;
- int ilosc=0,*tab=NULL;
- for(;;)
- {printf("Podaj lancuch znakow: \n");
- fflush(stdin);
- scanf("%99[^\n]s",tekst);
- printf("Podaj wzor: \n");
- fflush(stdin);
- scanf("%4[^\n]s",wzor);
- i=sprawdz(tekst,wzor);
- printf("Wynik funkcji spradz to: %i\n", i);
- tab=sprawdz_w(tekst,wzor,&ilosc);
- printf("\nIlosc to: %i\n",ilosc);
- for(i=0;i<ilosc;i++)
- {
- printf("\n %d - %d\n",i,*(tab+i));
- }
- system("pause");
- return 0;
- }
- }
- int dlugosc(char *lan)
- { int i=0;
- while(*(lan+i)!='\0')
- { i++;}
- return i;
- }
- int sprawdz(char *tekst, char *wzor)
- {
- int i=0;
- int j=0;
- int k=0;
- int y=dlugosc(wzor);
- int z=dlugosc(tekst);
- for(i;i<z;i++)
- {if(tekst[i]==wzor[j])
- {for(k;k<y;k++)
- {if(tekst[i+k]!=wzor[k]) break;
- }if(k==y)
- return i;
- }
- }
- return -1;
- }
- int* sprawdz_w(char *tekst, char *wzor, int *ilosc)
- {
- int i=0;
- int j=0;
- int k=0;
- int y=dlugosc(wzor);
- int z=dlugosc(tekst);
- int *tab=NULL;
- tab=NULL;
- for(i=0;i<z;i++)
- { for(j=0;j<y;j++)
- {if(tekst[i+j]!=wzor[j]) break;
- } if(j==y)
- {tab=(int*)realloc(tab,(k+1)*sizeof(int));
- *(tab+k)=i;
- k++;
- }
- }
- *ilosc=k;
- //printf("\n\n\n Talica: ");
- //for(i=0;i<k;i++);
- //{printf("\n %d - %d",i,*(tab+i));
- //}
- return tab;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement