C source file of program:
#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char d,t;
int l=0;
char *a=(char*)realloc(a,sizeof(char));
char *ct=(char*)realloc(ct,sizeof(char));
int i=0,k=0;
clrscr();
printf("Enter string and enter key : ");
gets(a);
l=strlen(a);
scanf("%d",&k);
for(i=0;i<l;i++)
{
if(a[i]>=65 && a[i]<=91)
{
d=a[i];
d=(((d-65)+k)%26)+65;
ct[i]=d;
}
else if(a[i]>=97 && a[i]<=123)
{
d=a[i];
d=(((d-97)+k)%26)+97;
ct[i]=d;
}
else
{
ct[i]=a[i];
}
}
printf("\nThe encrypted text is: ");
for(i=0;i<l;i++)
{
printf("%c",ct[i]);
}
free(a);
printf("\nThe decrypted text is: ");
for(i=0;i<l;i++)
{
if(ct[i]>=65 && ct[i]<=91)
{
t=ct[i];
if(((t-65)-k)<0)
{
t=((((t-65)-k)%26)+1)+65;
}
else
{
t=(((t-65)-k)%26)+65;
}
a[i]=t;
}
else if(ct[i]>=97 && ct[i]<=123)
{
t=ct[i];
if(((t-97)-k)<0)
{
t=((((t-97)-k)%26)+1)+97;
}
else
{
t=(((t-97)-k)%26)+97;
}
a[i]=t;
}
else
{
a[i]=ct[i];
}
}
for(i=0;i<l;i++)
{
printf("%c",a[i]);
}
free(a);
free(ct);
getch();
}
Output :