Advertisement
KlimexuS

Untitled

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