Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Zadatak 3 (3 + 6 + 6 = 15 bodova) Unos u rječniku hrvatskih riječi sastoji se od tri informacije: same riječi, informacije o
- vrsti riječi (imenica, glagol, . . . ) te opisa njezinog značenja.
- a) Definirajte tip podatka unos koji će služiti za čuvanje jednog unosa iz rječnika hrvatskih riječi. (Sve tri potrebne
- informacije možete reprezentirati stringovima, no uočite da opis riječi može sadržavati i razmake). Možete pretpostaviti
- da riječi nisu dulje od 30 znakova, te da informacija o vrsti riječi nije dulja od 10 znakova. S druge strane, nema
- ograničenja na duljinu opisa pojedine riječi.
- b) Napišite funkciju void novi(unos *x) koja će omogućiti korisniku da s tipkovnice učita novi unos u formatu
- riječ (vrsta) - opis
- primjerice:
- skakač (imenica) - jedna od figura u šahu
- te spremi odgovarajući unos u varijablu koju smo funkciji prenijeli po adresi
- void novi(unos* x){
- char c;
- int len = 1;
- scanf("%s (%[^)]) - ",x->rijec, x->vrsta); //mozemo spretno koristiti formate; alternativa je ucitavati znak-po-znak
- //preostaje ucitati x->opis
- //buduci da smo taj string deklarirali kao char*, prije ucitavanja moramo alocirati dovoljno memorije
- //kako ne znamo unaprijed sto je "dovoljno", trebamo ucitavati znak-po-znak i svaki puta realocirati memoriju
- x->opis = (char*) malloc(sizeof(char));
- scanf("%c", &c);
- while(c != '\n'){
- x->opis = realloc(x->opis, (len+1)*sizeof(char));
- (x->opis)[len-1] = c;
- ++len;
- scanf("%c", &c);
- }
- (x->opis)[len-1] = '\0';
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement