Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdbool.h>
- #include <string.h>
- #include <conio.h>
- #include <stdlib.h>
- #define N 5
- #define MAX_ZNAKOW 40
- void show_arr(char arr[][MAX_ZNAKOW], int size);
- unsigned dodaj_napis(char* str);
- unsigned int ile_znakow(char* str);
- int usun_wyraz(char arr[][MAX_ZNAKOW], int index, int size);
- bool znajdz_wyraz(char*str, char arr[][MAX_ZNAKOW], int size);
- void uzupelnij(char arr[][MAX_ZNAKOW], int size);
- void wspolna(char arr[][N][MAX_ZNAKOW], int size[]);
- int main()
- {
- bool znajdujesienapis = false;
- char tab[2][N][MAX_ZNAKOW];
- int nrTablicy = 0;
- int IloscNapisow[2];
- printf("MENU\n aktualnie wyswietlana tablica : %d \n", nrTablicy+1);
- 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");
- char action = getch();
- while(action != 'q' )
- {
- int suma;
- int i;
- int index;
- char wyraz;
- switch(action)
- {
- case '1':
- printf("podaj slowo\n");
- dodaj_napis(tab[nrTablicy][IloscNapisow[nrTablicy]]);
- IloscNapisow[nrTablicy] +=1;
- break;
- case '2':
- printf("twoje slowa to:\n");
- printf("%d\n", IloscNapisow[nrTablicy]);
- show_arr(tab[nrTablicy], IloscNapisow[nrTablicy]);
- break;
- case '3':
- suma=0;
- for(i=0; i<IloscNapisow[nrTablicy]; i++)
- {
- suma += ile_znakow(tab[nrTablicy][i]);
- }
- printf("twoj zbior napisow ma %d znakow\n", suma);
- break;
- case '4':
- printf("Wybierz index wyrazu ktory chcesz usunac\n");
- scanf("%d", &index);
- IloscNapisow[nrTablicy] -= usun_wyraz(tab[nrTablicy], index, IloscNapisow[nrTablicy]);
- break;
- case '5':
- printf("Ilosc wyrazow to : %d \n", IloscNapisow[nrTablicy]);
- break;
- case '6':
- znajdujesienapis = false;
- char str[40];
- printf("podaj slowo ktorego szukasz\n");
- scanf("%s", &str);
- if(znajdujesienapis=znajdz_wyraz(str, tab[nrTablicy], IloscNapisow[nrTablicy]))
- printf("znajduje sie napis\n");
- break;
- case '7':
- int g;
- for(g=0; g < IloscNapisow[nrTablicy]; g++)
- {
- uzupelnij(tab[nrTablicy], IloscNapisow[nrTablicy]);
- }
- printf("dopisano a do kazdego slowa\n");
- break;
- case '8':
- nrTablicy = (nrTablicy+1)%2;
- printf("zmieniono tablice\n");
- break;
- case '9':
- wspolna(tab, IloscNapisow);
- break;
- }
- system("cls");
- printf("MENU\n aktualnie wyswietlana tablica : %d \n", nrTablicy+1);
- 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");
- action = getch();
- }
- }
- unsigned dodaj_napis(char* str)
- {
- scanf("%s", str);
- }
- void show_arr(char arr[][MAX_ZNAKOW], int size)
- {
- int i;
- for(i=0; i<size;i++)
- {
- printf("%s\n", arr[i]);
- }
- }
- unsigned int ile_znakow(char* str)
- {
- const char *s;
- for (s = str; *s; ++s);
- return (s - str);
- }
- int usun_wyraz(char arr[][MAX_ZNAKOW], int index, int size)
- {
- if(index > size || index < 0)
- return 0;
- int i;
- for(i = index; i<size-1; i++)
- {
- memcpy(arr[i], arr[i+1], ile_znakow(arr[i+1]));
- }
- return 1;
- }
- bool znajdz_wyraz(char*str, char arr[][MAX_ZNAKOW], int size)
- {
- int i;
- for(i=0; i<size; i++)
- {
- if(!strcmp(str, arr[i]))
- {
- return true;
- }
- }
- return false;
- }
- void uzupelnij(char arr[][MAX_ZNAKOW], int size)
- {
- int k;
- int i;
- int j;
- for(i=0; i<size; i++)
- {
- k = strlen(arr[i]);
- for(j=k; j<40; j++)
- {
- arr[i][j]='a';
- }
- arr[i][39] = '\0';
- }
- }
- void wspolna(char arr[][N][MAX_ZNAKOW], int size[])
- {
- int i = 0;
- int j = 0;
- for(i; i<size[0]; i++)
- {
- for(j; j<size[1]; j++)
- {
- if(!strcmp(arr[0][i], arr[1][j]))
- printf( "Wyraz wspolny: %s \n", arr[0][i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement