Facebook
From Kamil , 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 261
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int* wyszukajIndeksZnaku(char* t, char k, int* ilosc);
  5. char* wyszukajWyrazOdZnaku(char* t, char k,int* dlugosclan);
  6.  
  7. int main()
  8. {
  9. char tab[50];
  10. char k;
  11. int* index=NULL;
  12. char* tabwyrazow=NULL;
  13. int ili=0;
  14. int dlugosclan=0;
  15. int i;
  16. fflush(stdin);
  17. printf("\n Wpisz lancuch ponizej : ");
  18. fflush(stdin);
  19. fgets (tab, 50, stdin);
  20. printf("\nOto lancuch, ktory tak uprzejmie zadeklarowales:\n %s",tab);
  21. printf("\nPodaj znak jaki chcesz wyszukac:");
  22. fflush(stdin);
  23. k=getchar();
  24. printf("\nWyszukiwany przez Ciebie znak to:%c",k);
  25. index=wyszukajIndeksZnaku(tab,k,&ili);
  26. printf("\nIndeksy miejsc, na ktorych znajduje sie poszukiwany znak:");
  27. for(i=0;i<ili;i++)
  28.     {printf(" %d ",*(index+i));
  29.     }
  30. printf("\nIlosc poszukiwanych znakow w lancuchu: %d",ili);
  31. tabwyrazow=wyszukajWyrazOdZnaku(tab,k,&dlugosclan);
  32. printf("\nWyrazy zaczynajace sie na dany znak: ");
  33. for(i=0;i<dlugosclan;i++)
  34.     {printf("%c",*(tabwyrazow+i));
  35.     }
  36. }
  37.  
  38. int* wyszukajIndeksZnaku(char* t, char k,int* ilosc)
  39. {
  40. int i=0,j=0;
  41. int *p=NULL;
  42. p=(int*)malloc((j+1)*sizeof(int));
  43.     for(i=0;*(t+i)!='\0';i++){
  44.         if(*(t+i)==k){
  45.         *(p+j)=i;
  46.         j++;
  47.         p=(int*)realloc(p,(j+1)*sizeof(int));
  48.         *ilosc=*ilosc+1;
  49.  
  50.     }
  51.     }
  52. return p;
  53. }
  54. char* wyszukajWyrazOdZnaku(char* t, char k, int* dlugosclan)
  55. {   int i,j=0,h;
  56.     char* p=NULL;
  57.     p=(char*)malloc((j+1)*sizeof(char));
  58.  
  59.     for(i=0;*(t+i)!='\0';i++)
  60.     {       if(i==0 && *(t+i)==k)
  61.             for(h=i;*(t+h)!='\0' && *(t+i)!=' ';h++)
  62.             {
  63.                 *(p+j)=*(t+h);
  64.                 j++;
  65.                 p=(char*)realloc(p,(j+1)*sizeof(char));
  66.                 i=h;
  67.             }
  68.             if(i!=0 && *(t+i)==k && *(t+i-1)==' ')
  69.             for(h=i;*(t+h)!='\0' && *(t+i)!=' ';h++)
  70.             {
  71.                 *(p+j)=*(t+h);
  72.                 j++;
  73.                 p=(char*)realloc(p,(j+1)*sizeof(char));
  74.                 i=h;
  75.             }
  76.     }
  77.     *dlugosclan=j;
  78.     return p;
  79. }