Advertisement
KlimexuS

Untitled

Dec 15th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 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.  
  16. int main()
  17. {
  18. char tab[N][MAX_ZNAKOW];
  19. int IloscNapisow = 0;
  20.  
  21. printf("MENU\n 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");
  22. char action = getch();
  23.  
  24. while(action != 'q' )
  25. {
  26. int suma;
  27. int i;
  28. int index;
  29. char wyraz;
  30. switch(action)
  31. {
  32. case '1':
  33. printf("podaj slowo\n");
  34. dodaj_napis(tab[IloscNapisow]);
  35. IloscNapisow +=1;
  36. break;
  37.  
  38. case '2':
  39. printf("twoje slowa to:\n");
  40. printf("%d\n", IloscNapisow);
  41. show_arr(tab, IloscNapisow);
  42. break;
  43. case '3':
  44. suma=0;
  45. for(i=0; i<IloscNapisow; i++)
  46. {
  47. suma += ile_znakow(tab[i]);
  48. }
  49. printf("twoj zbior napisow ma %d znakow\n", suma);
  50. break;
  51. case '4':
  52. printf("Wybierz index wyrazu ktory chcesz usunac\n");
  53. scanf("%d", &index);
  54. IloscNapisow -= usun_wyraz(tab, index, IloscNapisow);
  55. break;
  56. case '5':
  57. printf("Ilosc wyrazow to : %d \n", IloscNapisow);
  58. break;
  59. case '6':
  60.  
  61.  
  62. bool znajdujesienapis = false;
  63. char str[40];
  64. printf("podaj slowo ktorego szukasz\n");
  65. scanf("%s", &str);
  66. if(znajdujesienapis=znajdz_wyraz(str, tab, IloscNapisow))
  67. printf("znajduje sie napis\n");
  68.  
  69.  
  70. break;
  71.  
  72. case '7':
  73.  
  74. int g;
  75. for(g=0; g < IloscNapisow; g++)
  76. {
  77. uzupelnij(tab, IloscNapisow)
  78. }
  79.  
  80.  
  81. printf("dopisano a do kazdego slowa\n");
  82. break;
  83.  
  84. }
  85. printf("MENU\n wpisz 1, 2, 3, 4, lub 5 aby wybrac funkcje\n");
  86. action = getch();
  87.  
  88.  
  89. }
  90.  
  91.  
  92.  
  93. }
  94.  
  95. unsigned dodaj_napis(char* str)
  96. {
  97. scanf("%s", str);
  98. }
  99.  
  100. void show_arr(char arr[][MAX_ZNAKOW], int size)
  101. {
  102. int i;
  103. for(i=0; i<size;i++)
  104. {
  105. printf("%s\n", arr[i]);
  106. }
  107. }
  108.  
  109. unsigned int ile_znakow(char* str)
  110. {
  111. const char *s;
  112. for (s = str; *s; ++s);
  113. return (s - str);
  114.  
  115. }
  116. int usun_wyraz(char arr[][MAX_ZNAKOW], int index, int size)
  117. {
  118. if(index > size || index < 0)
  119. return 0;
  120. int i;
  121. for(i = index; i<size-1; i++)
  122. {
  123. memcpy(arr[i], arr[i+1], ile_znakow(arr[i+1]));
  124. }
  125. return 1;
  126. }
  127. bool znajdz_wyraz(char*str, char arr[][MAX_ZNAKOW], int size)
  128. {
  129. int i;
  130. for(i=0; i<size; i++)
  131. {
  132. if(!strcmp(str, arr[i]))
  133. {
  134. return true;
  135. }
  136.  
  137. }
  138. return false;
  139. }
  140.  
  141. void uzupelnij(char*str, char arr[][MAX_ZNAKOW], int size)
  142. {
  143. int k;
  144. int i;
  145. for(i=0; i<size; i++)
  146. {
  147. strlen(arr[i])=k;
  148. for(i=k; i<40; i++)
  149. {
  150. str[i]='a';
  151.  
  152. }
  153. }
  154.  
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement