Advertisement
KlimexuS

Untitled

Dec 15th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <string.h>
  4. #include <conio.h>
  5. #define N 5
  6. #define MAX_ZNAKOW 40
  7.  
  8.  
  9.  
  10. void show_arr(char arr[][MAX_ZNAKOW], int size);
  11. unsigned dodaj_napis(char* str);
  12. unsigned int ile_znakow(char* str);
  13. int usun_wyraz(char arr[][MAX_ZNAKOW], int index, int size);
  14. bool znajdz_wyraz(char*str, char arr[][MAX_ZNAKOW], int size);
  15. void uzupelnij(char arr[][MAX_ZNAKOW], int size);
  16.  
  17. int main()
  18. {
  19. bool znajdujesienapis = false;
  20. char tab[2][N][MAX_ZNAKOW];
  21. int nrTablicy = 0;
  22. int IloscNapisow = 0;
  23. int IloscNapisow[2];
  24.  
  25. printf("MENU\n aktualnie wyswietlana tablica : %d \n", nrTablicy+1);
  26. printf(" wpisz 1 by dodac wyraz \n 2 by wyswietlic wyrazy \n 3 by wyswietlic liczbe znakow \n 4 by usunac wyraz \n 5 by sprawdzic ile wyrazow jest w zbiorze \n 6 by sprawdzic czy wyraz nalezy do zbioru \n 7 by uzupelnic wyrazy litera a \n");
  27. char action = getch();
  28.  
  29. while(action != 'q' )
  30. {
  31. int suma;
  32. int i;
  33. int index;
  34. char wyraz;
  35. switch(action)
  36. {
  37. case '1':
  38. printf("podaj slowo\n");
  39. dodaj_napis(tab[nrTablicy][IloscNapisow[2]]);
  40. IloscNapisow +=1;
  41. break;
  42.  
  43. case '2':
  44. printf("twoje slowa to:\n");
  45. printf("%d\n", IloscNapisow);
  46. show_arr(tab[nrTablicy], IloscNapisow);
  47. break;
  48. case '3':
  49. suma=0;
  50. for(i=0; i<IloscNapisow[nrTablicy]; i++)
  51. {
  52. suma += ile_znakow(tab[nrTablicy][i]);
  53. }
  54. printf("twoj zbior napisow ma %d znakow\n", suma);
  55. break;
  56. case '4':
  57. printf("Wybierz index wyrazu ktory chcesz usunac\n");
  58. scanf("%d", &index);
  59. IloscNapisow[nrTablicy] -= usun_wyraz(tab[nrTablicy], index, IloscNapisow[nrTablicy]);
  60. break;
  61. case '5':
  62. printf("Ilosc wyrazow to : %d \n", IloscNapisow[nrTablicy]);
  63. break;
  64. case '6':
  65.  
  66.  
  67.  
  68. znajdujesienapis = false;
  69. char str[40];
  70. printf("podaj slowo ktorego szukasz\n");
  71. scanf("%s", &str);
  72. if(znajdujesienapis=znajdz_wyraz(str, tab[nrTablicy], IloscNapisow[nrTablicy]))
  73. printf("znajduje sie napis\n");
  74.  
  75.  
  76. break;
  77.  
  78. case '7':
  79.  
  80. int g;
  81. for(g=0; g < IloscNapisow[nrTablicy]; g++)
  82. {
  83. uzupelnij(tab[nrTablicy], IloscNapisow[nrTablicy]);
  84. }
  85. printf("dopisano a do kazdego slowa\n");
  86. break;
  87.  
  88. case '8':
  89. nrTablicy = (nrTablicy+1)%2;
  90. printf("zmieniono tablice\n");
  91. break;
  92.  
  93.  
  94.  
  95.  
  96.  
  97. }
  98. printf("MENU\n aktualnie wyswietlana tablica : %d \n", nrTablicy+1);
  99. printf(" wpisz 1 by dodac wyraz \n 2 by wyswietlic wyrazy \n 3 by wyswietlic liczbe znakow \n 4 by usunac wyraz \n 5 by sprawdzic ile wyrazow jest w zbiorze \n 6 by sprawdzic czy wyraz nalezy do zbioru \n 7 by uzupelnic wyrazy litera a \n");
  100. action = getch();
  101.  
  102.  
  103. }
  104.  
  105.  
  106.  
  107. }
  108.  
  109. unsigned dodaj_napis(char* str)
  110. {
  111. scanf("%s", str);
  112. }
  113.  
  114. void show_arr(char arr[][MAX_ZNAKOW], int size)
  115. {
  116. int i;
  117. for(i=0; i<size;i++)
  118. {
  119. printf("%s\n", arr[i]);
  120. }
  121. }
  122.  
  123. unsigned int ile_znakow(char* str)
  124. {
  125. const char *s;
  126. for (s = str; *s; ++s);
  127. return (s - str);
  128.  
  129. }
  130. int usun_wyraz(char arr[][MAX_ZNAKOW], int index, int size)
  131. {
  132. if(index > size || index < 0)
  133. return 0;
  134. int i;
  135. for(i = index; i<size-1; i++)
  136. {
  137. memcpy(arr[i], arr[i+1], ile_znakow(arr[i+1]));
  138. }
  139. return 1;
  140. }
  141. bool znajdz_wyraz(char*str, char arr[][MAX_ZNAKOW], int size)
  142. {
  143. int i;
  144. for(i=0; i<size; i++)
  145. {
  146. if(!strcmp(str, arr[i]))
  147. {
  148. return true;
  149. }
  150.  
  151. }
  152. return false;
  153. }
  154.  
  155. void uzupelnij(char arr[][MAX_ZNAKOW], int size)
  156. {
  157. int k;
  158. int i;
  159. int j;
  160. for(i=0; i<size; i++)
  161. {
  162. k = strlen(arr[i]);
  163.  
  164. for(j=k; j<40; j++)
  165. {
  166. arr[i][j]='a';
  167.  
  168. }
  169. arr[i][39] = '\0';
  170.  
  171. }
  172.  
  173. }
  174.  
  175. void porownaj()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement