Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.02 KB | None | 0 0
  1.  
  2. int contains(char a[], char v) {
  3.     int i;
  4.     for (i = 0; i < strlen(a); i++)
  5.         if (a[i] == v)
  6.             return 1;
  7.     return 0;
  8. }
  9. int difera(char a[], char b[]) {
  10.     int i, ret = 0;
  11.     for(i = 0; i < strlen(a); i++)
  12.         if (contains(b, a[i]))
  13.             ret++;
  14.     return ret;
  15. }
  16. void dictionar(nod *rad, char cuv[], int niv, char ret[]) {
  17.  
  18.    char c;
  19.     for (c = 'A'; c <= 'Z'; c++)        //pentru toate literele considerate
  20.     {
  21.         if (get_val(rad, c))            //daca exista legatura in dictionar
  22.         {
  23.             cuv[niv] = c;               //adaug litera gasita in buffer
  24.             dictionar(get_val(rad, c),cuv,niv+1, ret); //avansez
  25.         }
  26.     }
  27.     if (get_val(rad, '['))          //exista terminator=>am gasit un cuvant intreg
  28.     {
  29.         cuv[niv] = '\0';
  30.         if(difera(cuv, ret) == strlen(cuv) - 1 && abs(strlen(ret)-strlen(cuv)) == 1)
  31.             printf("%s\n", cuv);        //prelucrez datele
  32.  
  33.     }
  34.  
  35. }
  36. void func(nod *rad, char cuv[], int niv, char ret[]) {
  37.     printf("%s, did you mean: \n", ret);
  38.     dictionar(rad,cuv, niv, ret);
  39.     printf("\n");
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement