/* TMA02 q3c */
/* Author: Chan Chi Ming, s93504843, Date of authoring: 29/1/2001
this program is used to decrypt a message according to a key entered by user.*/
#include <condefs.h>
#pragma hdrstop
#include <stdio.h>
#include <string.h>

//---------------------------------------------------------------------------
#pragma argsused
void decrypt(char* message, int length, int key) {
/*function body of decrypt*/
int i, diff;         /*index*/
char demessage[100]; /*string holds the decrypted message*/
for(i = 0; i < length; i++){
    if((message[i] >= 'A') && (message[i] <= 'Z')) {
    /*check the character whether in range 'A' to 'Z' or not*/
        demessage[i] = message[i] - key; } /*decrypt action*/
    else {
        demessage[i] = message[i]; } /*no action to char out of range*/
}
for(i = 0; i < length; i++){    /*rearrange the character out of range after decryption*/
    if((demessage[i] < 'A')&&(demessage[i]!= ' ')) {
        diff = 'A' - demessage[i];
        demessage[i] = '[' - diff; }
}
printf("\n");
printf("The message decrypted is: ");  /*print out the decrypted message*/
puts(demessage);
}


int main(int argc, char **argv) /*Main program*/
{
char message[100];  /*variable declaration*/
int key;
int length = 0;
printf("Enter a message to be decrypted: \n"); /*ask user to input*/
gets(message);
printf("Enter the key: ");
scanf("%d", &key);
length = strlen(message); /*find out the length of message by function strlen*/
decrypt(message, length, key);  /*call function decrypt*/
fflush(stdin);
getchar();
        return 0;
}