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;
}