Create a Caeser cipher encryption program in C++ Language which takes a keyword.
ID: 3678444 • Letter: C
Question
Create a Caeser cipher encryption program in C++ Language which takes a keyword. The keyword will fill the first part of the shifted array. The remaining letters will fill the end of the array. It should look like:
Key= TOY
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
T
O
Y
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
U
V
W
X
Z
You should have an interactive menu with the following options:
1 Enter Keyword //takes new keyword and re-aligns shifted array
2 Encrypt message//takes a message of 140 characters and encrypts message
3 Decrypt message//takes an encrypted message of 140 characters and decrypts it
4 Quit//exits program;
Use the copy function from the <cstring> library not the <algorithm> library. If you use the algorithm library you need to make a change in visual studios precompiler settings or you will get an error. You cannot assign arrays using the ‘=’ operator; only individual indices of the array can be assigned this way.
Take one case or the other for input. All Caps or all lowercase. You can use “toupper(<char>)” to set all letters to upper case
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
T
O
Y
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
U
V
W
X
Z
Explanation / Answer
#include <iostream>
#include <string>
#include <ctype.h>
#include <cstring>
#include <stdio.h>
using namespace std;
int main()
{
char alpha[26] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z' };
char encrypt[26];
char decrypt[26];
int choice;
int step;
char plainText[140];
for (int i = 0; i < 26; i++) {
encrypt[i] = alpha[(i + 3) % 26];
cout << alpha[(i + 3) % 26];
}
for (int i = 0; i < 26; i++)
decrypt[encrypt[i] - 'A'] = alpha[i];
while (1)
{
cout
<< " Enter your choice. 1 Enter Keyword 2 Encrypt message 3.Decrypt message 4.Quit"
<< endl;
cin >> choice;
switch (choice) {
case 1:
cout << "Please enter String : ";
break;
case 2:
cout << "Please enter String to be encrypted : ";
scanf("%s", plainText);
cout << plainText;
for (step = 0; step < strlen(plainText); step++) {
if (65 <= plainText[step] && plainText[step] <= 90) {
plainText[step] = encrypt[plainText[step] - 'A'];
cout << encrypt[plainText[step] - 'A'] << " ";
}
}
cout << "ASASAS " << plainText;
break;
case 3:
cout << "Please enter String to be decrypted : ";
cin >> plainText;
for (step = 0; step < strlen(plainText); step++)
if (65 <= plainText[step] && plainText[step] <= 90)
plainText[step] = decrypt[plainText[step] - 'A'];
cout << plainText;
break;
case 4:
return 0;
}
}
} //end main
Using this code you can encrypt and decrypt I am not able to get case 1 also if you enter string sepeareted by spcae that is also not handled it will pick the string before space.
Let me know if you need more modifications.