Caesar Cipher : HackerRank Problem Solution
Input:
11
middle-Outz
2
Output:
okffng-Qwvb
Implementation:
Input:
11
middle-Outz
2
Output:
okffng-Qwvb
Implementation:
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { int n,k,i; char *s,ch; scanf("%d",&n); /* allocate memory block for getting string from the user */ s=(char*)malloc(sizeof(char)*1000000); /* get the string input from the user */ scanf("%s",s); /* get the rotation number */ scanf("%d",&k); /* set the starting index to 0 */ i=0; /* traverse through the string from starting character to End of the string(Null character -'\0') */ while(*(s+i)) { /* check whether the character is an alphabet */ if((*(s+i)>='a' && *(s+i)<='z') || (*(s+i)>='A' && *(s+i)<='Z')) { /* check whether the character is lowercase or uppercase based on lowercase or uppercase, set the 'ch' variable to 'a' or 'A' */ if(*(s+i)>='a' && *(s+i)<='z') ch='a'; else ch='A'; /* to shift the character to exact 'k' rotation */ *(s+i)=ch+(*(s+i)-ch+k)%26; } /* update the index value to move the pointer to next character in the string */ i++; } /* finally print the updated / rotated string */ printf("%s",s); return 0; }