Activity 5 - ASCII Code
That’s great!
In this activity we will encrypt (make secret) the name of the recipient.
Let’s use the ASCII Code
ASCII Code
The ASCII code shows that each character has a numeric value. For example, the character A
is the number 65, B
is 66, C
is 67, etc.
The following list shows the value of the most commonly used characters:
Since each character has a numeric value, we can use this to add or subtract values to these letters, and thus change the order of them in a certain way. It allows us to convert characters (char
) into numbers (int
) and vice versa.
Example
char letter = 'A';
int letter_value = letter;
cout << letter << " = " << letter_value << endl;
This will print:
A = 65
In this example, we save the character in a variable type char. Then, in an int type variable we save the char type variable, but since the second variable saves numbers, it will convert the character into its numerical value according to the ASCII code.
We could do the opposite, for example:
int letter_value = 67;
char letter = letter_value;
cout << letter_value << " = " << letter << endl;
This will print:
67 = C
To create the secret message we will use a keyword, from which we will encode the name. The idea is to go through each character of the name with a for statement, and at the same time go through each character of the keyword. Then we will add the value of the character of the name and the keyword, and the result will be a new character, which will make the message encrypted.
For example, if my keyword is queen
and the name I want to encrypt is programmer
, the program has to add the 'r'
and the 'p'
, and save the result in place of ‘p’ in the string “programmer”. Then I would add the 'r'
and the 'e'
, the 'o'
and the 'i'
, etc. When we are in character 5 of the programmer string (counted the first as 0), we will have to turn around in the queen string and start in the returned character 0, that is, the letter 'r'
, since the queen string has no more characters.
For that, we are going to gather part of what we have already done, and we must follow the following steps:
- First, create a variable of type
string
to be the keyword. - Store the input received from console into this variable. This will be the name.
- Repeat the first two steps, but this will store the keyword.
- Declare a
for
loop, and use a variable of typeint
initialized to 0. Add1
to this variable for each cycle of the loop, and continue the loop while the variable is less than thestring
variable’ssize
. - In the body of the
for
loop, create anint
variable that is equal to the sum of the name character (name[i]
) and the keyword character at the counter position (key[counter]
). From this sum we must subtract a lowercase letter'a'
so that the sum corresponds to a letter and not some other random character of the ASCII code. - Use an
if
statement to determine whether the sum of characters corresponds to a character greater than'z'
. If so, subtract by25
(the number of letters of the alphabet) to ensure we get a true letter in the alphabet. - Set the character
name[i]
to be the value contained by thesum
variable. This will change the original letter to the new character. - Add
1
to the counter we carry from the keyword. - Check if the keyword counter is greater than or equal to the length of the
key
string; if so, reset the counter to0
. - Finally, after the
for
statement, print the encrypted message to the console.
Remember that you can always go back to the previous activities to review anything!
Once the steps are complete, start playing and encrypting your words! Press Run and type in the console the keyword followed by the enter key, and then the name or word to encrypt, followed also by a enter. For example, you can copy and paste the following into your console:
programmer
queen