Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h.>
- #include <string.h>
- typedef struct rec{
- char srpska[100], engleska[100], francuska[100];
- struct rec *leva;
- struct rec *desna;
- } rec;
- void ispisMenija(){
- printf("Unesite opciju:\n");
- printf("(1) Ucitavanje recnika\n");
- printf("(2) Ispis reci na jeziku\n");
- printf("(3) Prevod recenice\n");
- printf("(0) Izlaz\n");
- }
- rec* napraviRec(char srpska[], char engleska[], char francuska[]){
- rec *novi = (rec*)malloc(sizeof(rec));
- strcpy(novi->srpska,srpska);
- strcpy(novi->engleska,engleska);
- strcpy(novi->francuska,francuska);
- novi->leva = NULL;
- novi->desna = NULL;
- return novi;
- }
- rec* ubaciUStablo(rec* koren, rec* nova)
- {
- if(koren == NULL) return nova;
- if(strcmp(koren->srpska,nova->srpska) == 1){
- koren->leva = ubaciUStablo(koren->leva,nova);
- }
- else if(strcmp(koren->srpska,nova->srpska) == -1){
- koren->desna = ubaciUStablo(koren->desna,nova);
- }
- return koren;
- }
- void nalepiRec(rec* koren, rec* nova)
- {
- if (koren == NULL) return;
- if(strcmp(koren->srpska,nova->srpska) == 1){
- pretraziStablo(koren->leva,nova);
- }
- else if(strcmp(koren->srpska,nova->srpska) == -1){
- pretraziStablo(koren->desna,nova);
- }
- if(strcmp(koren->engleska,"") == 0){
- strcpy(koren->engleska,nova->engleska);
- } else{
- strcpy(koren->francuska,nova->francuska);
- }
- }
- void pretraziStablo(rec* koren, char rec[])
- {
- if (koren == NULL) return;
- if(strcmp(koren->srpska,rec) == 1){
- pretraziStablo(koren->leva,rec);
- }
- else if(strcmp(koren->srpska,rec) == -1){
- pretraziStablo(koren->desna,rec);
- }
- return koren;
- }
- void ispisiStablo(rec* koren, char jezik[])
- {
- if (koren == NULL) return;
- ispisiStablo(koren->leva,jezik);
- ispisiRec(koren,jezik);
- ispisiStablo(koren->desna,jezik);
- }
- void ispisiRec(rec* koren, char jezik[]){
- if(strcmp(jezik,"en") == 0){
- printf("%s-%s", koren->srpska,koren->engleska);
- } else{
- printf("%s-%s", koren->srpska,koren->francuska);
- }
- }
- char* prevedi(rec* koren, char recenica[], char jezik[])
- {
- char prevod[100];
- }
- int main(){
- rec *koren = NULL;
- int opcija;
- ispisMenija();
- scanf("%d",&opcija);
- do{
- if(opcija==1){
- char fileName1[100], fileName2[100];
- char linija[100], srpska[100], engleska[100], francuska[100];
- char *token;
- int flag;
- printf("Unesite ime 1. fajla: ");
- scanf("%s",&fileName1);
- FILE* f1 = fopen(fileName1,"r");
- fgets(linija,100,f1);
- if(strcmp(linija,"en") == 0) flag = 1;
- else flag = 0;
- while(fgets(linija,100,f1) != NULL){
- token = strtok(linija,"-");
- strcpy(srpska,token);
- token = strtok(NULL,"-");
- if(flag){
- strcpy(engleska,token);
- strcpy(francuska,"");
- } else {
- strcpy(francuska,token);
- strcpy(engleska,"");
- }
- rec* nova = napraviRec(srpska,engleska,francuska);
- koren = ubaciUStablo(koren,nova);
- }
- fclose(f1);
- printf("Unesite ime 2. fajla: ");
- scanf("%s",&fileName2);
- FILE* f2 = fopen(fileName2,"r");
- fgets(linija,100,f1);
- while(fgets(linija,100,f1) != NULL){
- token = strtok(linija,"-");
- strcpy(srpska,token);
- token = strtok(NULL,"-");
- if(flag){
- strcpy(francuska,token);
- strcpy(engleska,"");
- } else {
- strcpy(engleska,token);
- strcpy(francuska,"");
- }
- rec* nova = napraviRec(srpska,engleska,francuska);
- nalepiRec(koren,nova);
- }
- fclose(f2);
- }
- if(opcija == 2)
- {
- char jezik[100];
- printf("Unesite jezik: ");
- scanf("%s",jezik);
- ispisiStablo(koren,jezik);
- }
- if(opcija == 3)
- {
- char prevod[100], recenica[100], jezik[100];
- char *token;
- printf("Unesite recenicu:\n");
- scanf("%s",recenica);
- printf("Unesite jezik:\n");
- scanf("%s",jezik);
- prevod = "";
- strtok(recenica," ");
- while(token != NULL){
- rec* pom = pretraziStablo(koren,token);
- if (pom == NULL){
- strcat("Nepoznato ",prevod)
- }else{
- if (strcmp(jezik,"en") == 0) strcat(prevod,pom->engleska);
- else strcat(prevod,pom->francuska);
- strcat(prevod," ");
- }
- token = strtok(NULL," ");
- }
- printf("%s\n",prevod);
- }
- ispisMenija();
- }while(opcija);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement