Using C++ Comments are very helpful If header files are added please provide the
ID: 3863486 • Letter: U
Question
Using C++
Comments are very helpful
If header files are added please provide them
The Caesar cipher is one of the earliest known and simplest ciphers. It is a type of substitution cipher in which each letter in the plaintext is 'shifted' a certain number of places down the alphabet.
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
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
H
E
L
L
O
W
O
R
L
D
Normal Text
B
Y
F
F
I
Q
I
R
M
X
Encrypted Text
You are tasked to create an encryption program which takes a key word. 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 this:
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 Key word //takes new key word and re-aligns shifted array
2 Encrypt message//takes a message of 140 characters and encrypts message
3 Decrypt message//takes an encrypted massage of 140 characters and decrypts it
4 Quit//exits program;
A couple tips:
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: http://cpp.sh/7gwx
/* toupper example */
#include <stdio.h>
#include <iostream>
#include <ctype.h>//for toupper
using namespace std;
int main ()
{
int i=0;
char str[]="Test String. ";
char c;
while (str[i])
{
c=str[i];
str[i]=toupper(c);
i++;
}
std::cout<<str<<endl;
return EXIT_SUCCESS;
}
When encrypting/decrypting, don’t change characters that are not in your Array set like punctuation and spaces
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
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
Explanation / Answer
Please see the code below.
The Encrypt text provided for Hello World is Wrong in the example.
CODE:
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
char alpa[26];
char c = 'A';
// create alpabets based on key.
static void Cipher(string key)
{
int i = 0;
// initiallly store the key
for (;i<key.length();i++){
alpa[i] = key[i];
}
// and then the alphabets.
for(;i<26;i++){
alpa[i] = c;
c++;
}
}
// encrypt here
static string Encipher(string input)
{
string output = "";
// check if the input is alphabet and convert it to uppercase and then encrypt.
for (int i=0;i<input.length();i++){
if(isalpha(input[i])){
char c = toupper(input[i]);
output += alpa[int(c)-65];
}
else
output += " ";
}
return output;
}
int main(){
string key;
string message;
cout << "Enter the KeyWord: " << endl;
cin >> key;
Cipher(key);
cout << " Enter the message to Encrypt" << endl;
cin >> message;
cout << "Encrypted message is " << endl;
cout << Encipher(message) << endl;
}
OUTPUT:
$ ./a.out
Enter the KeyWord:
uvwxyz
Enter the message to Encrypt
HelloWorld
Encrypted message is
ByFFIQILFx
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.