The ABRACADABRA language has just five lowercase letters a, b, c, d, r. and ever
ID: 3793198 • Letter: T
Question
The ABRACADABRA language has just five lowercase letters a, b, c, d, r. and every combination of these letters (but no other letters) is a word in the ABRACADABRA language. For example, abba is a word in the language, but aBBa and abbe are not. The good people of ABRACADABRA often encrypt their words, so that they can send each other messages which their adversaries cannot understand. To this end, they use the following simple encryption process, called a substitution cipher. First consider the natural (or lexicographic) order of the five letters, where a is the first letter, b is the second letter, and so on, with r being the last letter. Two parties who wish to communicate with each other agree in advance on a a secret order of the five letters in the language, also called the encryption key (for example r, b, c, d, a). To encrypt a message, they create a table consisting of two rows. The first row lists the letters a, b, c, d, r in their natural order, while the second row lists these same letters in the secret order of the encryption key. Here is an example of such a table: An arbitrary word in the ABRACADABRA language can be now encrypted by replacing every letter in the word by an encrypted version thereof that appears in the second row of the table. For example, if the encryption key is rbcda as above, every a is replaced by r and every r is replaced by a. while the letters b, c, d remain unchanged. Thus the word abba gets encrypted rbbr. Warm up exercises: If the secret key is abcdr and the source word is abbaca. what is the encrypted word? If the secret key is arcdb and the source word is abbacar. what is the encrypted word? Write a C program, called abracadabrajencoder. c, that encrypts words in the ABRACADABRA language. The program should prompt the user to enter a secret key and a word. You can assume that the secret key will consist of the five characters a, b, c, d, r listed in some order, each appearing exactly once, with no spaces. The leftmost letter is the first letter of the secret key (hence it should replace the letter a in your encryption), and so on. The word should be a valid word in the ABRACADABRA language, consisting of seven letters. If the user enters anything after the seven letters, you should ignore this input. On the other hand, if the first seven characters typed in by the user do not constitute a valid word in the ABRACADABRA language, the program should print an appropriate error message and terminate (remember to verify the success of the input functions scanf () and/or get char ()). The output of the program should be the encrypted word. Here are two sample runs of this program, assuming that the executable file is named abracadabra_encoder./home/userXYZ/ECE15/Lab2> abracadabra-encoder Enter key: rbcda Enter word: abbacar Encrypted word: rbbrcra/home/userXYZ/ECE15/Lab2> abracadabra_encoder Enter key: rdbca Enter word: acrAbar You did not speak in ABRACADABRA to me!Explanation / Answer
Hi buddy,please find the below C program
#include <stdio.h>
int main(void) {
// your code goes here
char key[10],word[10];
printf("Enter key : ");
scanf("%s",key);
printf("Enter word : ");
scanf("%s",word);
char ans[7];
//Consider the first 7 letter of the word
for(int i=0;i<7;i++){
//Substitute in the cipher
if(word[i]=='a'){
ans[i] = key[0];
}
else if(word[i]=='b'){
ans[i] = key[1];
}
else if(word[i]=='c'){
ans[i] = key[2];
}
else if(word[i]=='d'){
ans[i] = key[3];
}
else if(word[i]=='r'){
ans[i] = key[4];
}
else{
printf("you did not speak in ABRACADABRA to me!");
return 0;
}
}
printf("%s ",ans);
return 0;
}
OUTPUT :
Enter key : rbcda
Enter word : abbacaraa
rbbrcra
Enter key : rbcda
Enter word : aaAbdfds
you did not speak in ABRACADABRA to me!
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.