Dimitrija

Laboratoriski ISPITNI - 20/21 SP

Jan 5th, 2021 (edited)
1,514
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #define MAX 80
  4.  
  5. /*
  6.  
  7. Од стаднарден влез се читаат N низи од знаци (стрингови) не подолги од 80 знаци. На почетокот на програмата се читаат два цели броеви:
  8.  
  9. N - бројот на низи од знаци кои ќе се читаат и
  10. X - поместување.
  11. Секоја од вчитаните низи од знаци треба да се трансформира на тој начин што секоја од малите и големите букви (a-z, A-Z) се заменува со истата буква поместена X места понапред во азбуката (a-z). Ако се надмине опсегот на буквите во азбуката, се продолжува циклично од почетокот на азбуката. Трансформираната низа да се отпечати на СИ.
  12.  
  13. Трансформацијата да се имплементира со посебна рекурзивна функција.
  14.  
  15. Пример:
  16.  
  17. Welcome -> трансформирано со поместување 5 -> Bjqhtrj
  18.  
  19. Input
  20. 3 5
  21. Welcome to the Machine
  22. Another Brick in the Wall
  23. Shine on you crazy Diamond
  24.  
  25. Result
  26. Bjqhtrj yt ymj Rfhmnsj
  27. Fstymjw Gwnhp ns ymj Bfqq
  28. Xmnsj ts dtz hwfed Infrtsi
  29.  
  30. */
  31.  
  32. void rek(char *niza,int pom){
  33.  
  34.     if (*niza){
  35.        
  36.         char c;
  37.         char x;
  38.        
  39.         if (isalpha(*niza)){
  40.        
  41.             if (isupper(*niza)){
  42.                 x='A';
  43.             }
  44.             else{
  45.                 x='a';
  46.             }
  47.             *(niza) = (*(niza)-x+pom)%26 +x;
  48.            
  49.         }
  50.    
  51.     rek (niza+1,pom);
  52.    
  53.     }
  54. }
  55.  
  56.  
  57.  
  58. int main(){
  59.  
  60.     char niza[MAX];
  61.     char c;
  62.     int n,x,i,j;
  63.    
  64.     scanf("%d %d",&n,&x);
  65.     getchar();
  66.     for (i=0;i<n;i++){
  67.         fgets (niza,80,stdin);
  68.         rek(niza,x);
  69.         printf("%s",niza);
  70.     }    
  71.     return 0;
  72. }
Add Comment
Please, Sign In to add comment