Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <ctype.h>
- #define MAX 100
- /*
- Од стаднарден влез се читаат N низи од знаци (стрингови) не подолги од 80 знаци. На почетокот на програмата се читаат два цели броеви:
- N - бројот на низи од знаци кои ќе се читаат и
- X - поместување.
- Секоја од вчитаните низи од знаци треба да се трансформира на тој начин што секоја од малите и големите букви (a-z, A-Z) се заменува со истата буква поместена X места понапред во азбуката (a-z). Ако се надмине опсегот на буквите во азбуката, се продолжува циклично од почетокот на азбуката. Трансформираната низа да се отпечати на СИ.
- Трансформацијата да се имплементира со посебна рекурзивна функција.
- Пример:
- Welcome -> трансформирано со поместување 5 -> Bjqhtrj
- Input
- 3 5
- Welcome to the Machine
- Another Brick in the Wall
- Shine on you crazy Diamond
- Result
- Bjqhtrj yt ymj Rfhmnsj
- Fstymjw Gwnhp ns ymj Bfqq
- Xmnsj ts dtz hwfed Infrtsi
- */
- int rek(char *niza, int x){
- if (*niza != '\0'){
- if (isalpha(*niza)){
- if (isupper(*niza)){
- if (*niza + x > 'Z'){
- *niza = 'A' + (*niza + x - 'Z' -1);
- }
- else{
- *niza+=x;
- }
- }
- if (islower(*niza)){
- if (*niza + x > 'z'){
- *niza = 'a' + (*niza + x - 'z'-1);
- }
- else{
- *niza+=x;
- }
- }
- }
- return rek(niza+1,x);
- }
- }
- int main(){
- int x,n;
- int i;
- scanf("%d %d",&n,&x);
- getchar();
- char niza[MAX];
- for (i=0;i<n;i++){
- scanf("%[^\n]s",&niza[0]);
- getchar();
- rek(niza,x);
- printf("%s\n",niza);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment