Code:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
void readCode(char [][]);
void encode(char [][]);
void decode(char [][]);
int main()
{
char c, key[33][2] = { {'A','0'}, {'B','0'}, {'C','0'}, {'D','0'},
{'E','0'}, {'F','0'}, {'G','0'}, {'H','0'}, {'I','0'}, {'J','0'},
{'K','0'}, {'L','0'}, {'M','0'}, {'N','0'}, {'O','0'}, {'P','0'},
{'Q','0'}, {'R','0'}, {'S','0'}, {'T','0'}, {'U','0'}, {'V','0'},
{'W','0'}, {'X','0'}, {'Y','0'}, {'Z','0'}, {' ','0'}, {'.','0'},
{',','0'}, {'?','0'}, {'!','0'}, {';','0'}};
readCode(key);
printf("\n\n MENU\n\n");
printf("C Change Code\n");
printf("E Encode\n");
printf("D Decode\n");
printf("Q Quit\n");
scanf("%c",c);
toupper(c);
switch(c)
{
case 'C':
readCode(key);
break;
case 'E':
encode(key);
break;
case 'D':
decode(key);
break;
case 'Q':
printf("Goodbye\n");
break;
}
return 0;
}
void readCode(char key[][])
{
char c, code[33];
int i = 0;
printf("Enter the code, you must enter 32 unique characters on one line\n");
for(i = 0; (c = getchar()) != '\n'; i++)
key[i][1] = c;
}
void encode(char key[][])
{
char c, message[100];
int i = 0, j = 0, k = 0;
printf("Enter the string to be encoded, press enter when finished\n");
for(i = 0; (c = getchar()) != '\n'; i++)
message[i] = c;
printf("Encoded Message\n");
for (j = 0; j < i; j++)
{
while (message[j] != key[k][0])
k++;
putchar(key[1][k]);
k = 0;
}
printf("\n");
}
void decode(char key [][])
{
char c, message[100];
int i = 0, j = 0, k = 0;
printf("Enter the string to be decoded, press enter when finished\n");
for(i = 0; (c = getchar()) != '\n'; i++)
message[i] = c;
printf("Decoded Message\n");
for (j = 0; j < i; j++)
{
while (message[j] != key[k][1])
k++;
putchar(key[0][k]);
k = 0;
}
printf("\n");
}
errors are in bold, but kinda hard to see