Advertisement
JStefan

[Kolokviumska] Cezar

Dec 25th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. /*
  2.     Цезар Problem
  3.     Од стаднарден влез се читаат N низи од знаци (стрингови) не подолги од 80 знаци.
  4.     На почетокот на програмата се читаат два цели броеви:
  5.  
  6.     N - бројот на низи од знаци кои ќе се читаат и
  7.     X - поместување.
  8.     Секоја од вчитаните низи од знаци треба да се трансформира на тој начин што секоја од малите и големите букви (a-z, A-Z)
  9.     се заменува со истата буква поместена X места понапред во азбуката (a-z). Ако се надмине опсегот на буквите во азбуката,
  10.     се продолжува циклично од почетокот на азбуката. Трансформираната низа да се отпечати на СИ.
  11.  
  12.     Трансформацијата да се имплементира со посебна рекурзивна функција.
  13.  
  14.     Пример:
  15.  
  16.     Welcome -> трансформирано со поместување 5 -> Bjqhtrj
  17. */
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20.  
  21. void pomesti(char *string, int k, int i) {
  22.     if(string[i] != 0) {
  23.         int f;
  24.         isupper(string[i]) ? (f = 'A') : (f = 'a');
  25.         if(isalpha(string[i])) string[i] = f + ((string[i] - f) + k)%26;
  26.         pomesti(string, k, i+1);
  27.     }
  28. }
  29.  
  30. int main()
  31. {
  32.     int n, k, i;
  33.     scanf("%d %d", &n, &k);
  34.  
  35.     char string[81];
  36.     for(i = 0; i <= n; ++i) {
  37.         gets(string);
  38.         pomesti(string, k, 0);
  39.         puts(string);
  40.     }
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement