Advertisement
Crackbone

dv11z5

Jun 6th, 2021
675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. /*5. Napisati rekurzivnu funkciju koja traži n-to pojavljivanje nekog znaka u stringu.*/
  2.  
  3.  
  4.  
  5. #define _CRT_SECURE_NO_WARNINGS
  6.  
  7.  
  8. #include<stdio.h>
  9. #include<string.h>
  10.  
  11. int funkcija(char[],int, char );
  12. int funkcija1(char[], int, char, int);
  13.  
  14.  
  15. int main()
  16. {
  17.     char nekakav_string[] = "Nekakav text cisto za provjeru ove funkcije";
  18.     char znak = 'k';
  19.  
  20.     //printf("Znak %c  pojavljuje %d puta",znak,funkcija(nekakav_string,strlen(nekakav_string),znak));
  21.  
  22.     funkcija1(nekakav_string, strlen(nekakav_string), znak, 3);
  23.  
  24.     getchar();
  25.     getchar();
  26.     return 1;
  27. }
  28.  
  29. //E sad ja ovo nisam shvatija; Znaci mi odaberemo znak
  30. //Onda je li treba koliko puta se pojavljuje u stringu
  31. //Pojavljuje li se znak u stringu minimalno n puta
  32. //Ili doslovice treba ako se pojavljuje ispisat  pojavljuje se 3 put izmedju ova 2 znaka
  33. //Jer ako to treba onda je bolje imat vise funkcija
  34.  
  35. int funkcija(char niz[],int velicina, char znak)
  36. {
  37.     if (velicina == 0)
  38.         return 0;
  39.     else if (niz[0] == znak)
  40.         return 1 + funkcija(&niz[1], velicina - 1, znak);
  41.     else if (niz[0] != znak)
  42.         return funkcija(&niz[1], velicina - 1, znak);
  43.  
  44. }
  45.  
  46. //String,velicina,znak,n;
  47.  
  48. int funkcija1(char niz[], int velicina, char znak, int n)
  49. {
  50.     if (velicina == 0)
  51.         return 0;
  52.     else if (niz[0] == znak)
  53.     {
  54.         n--;
  55.         if (0 == n)
  56.             printf("Trazeno ponavljanje je izmedju %c i %c", niz[-1], niz[1]);
  57.         return 1 + funkcija1(&niz[1], velicina - 1, znak, n);
  58.     }
  59.     else if (niz[0] != znak)
  60.         return funkcija1(&niz[1], velicina - 1, znak,n);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement