-
-
Save CraigRodrigues/100ab759b6b6722ba3ad8acf12e26371 to your computer and use it in GitHub Desktop.
| #include <stdio.h> | |
| #include <cs50.h> | |
| #include <string.h> | |
| #include <ctype.h> | |
| /** | |
| * Caesar.c | |
| * A program that encrypts messages using Caesar’s cipher. Your program must | |
| * accept a single command-line argument: a non-negative integer. Let’s call it | |
| * k for the sake of discussion. If your program is executed without any | |
| * command-line arguments or with more than one command-line argument, your | |
| * program should yell at the user and return a value of 1. | |
| * | |
| * */ | |
| int main(int argc, string argv[]) | |
| { | |
| // check for 2 arguments only | |
| if (argc != 2) | |
| { | |
| printf("Nope\n"); | |
| return 1; | |
| } | |
| // once I check for correct argv put key into an int k | |
| int k = atoi(argv[1]); | |
| // check if the integer is non-negative | |
| if (k < 0) | |
| { | |
| printf("Nope\n"); | |
| return 1; | |
| } | |
| else | |
| { | |
| // prompt user for a code to encrypt | |
| string code = GetString(); | |
| for (int i = 0, n = strlen(code); i < n; i++) | |
| { | |
| //check if the letter is uppercase or lowercase then convert | |
| if islower(code[i]) | |
| printf("%c", (((code[i] + k) - 97) % 26) + 97); | |
| else if isupper(code[i]) | |
| printf("%c", (((code[i] + k) - 65) % 26) + 65); | |
| //if neither then just print whatever it is | |
| else | |
| printf("%c", code[i]); | |
| } | |
| printf("\n"); | |
| return 0; | |
| } | |
| } |
Guys I'm getting this:
:) caesar.c exists.
:) caesar.c compiles.
:( encrypts "a" as "b" using 1 as key
expected "ciphertext: b...", not "ciphertext: b..."
:( encrypts "barfoo" as "yxocll" using 23 as key
expected "ciphertext: yx...", not "ciphertext: yx..."
:( encrypts "BARFOO" as "EDUIRR" using 3 as key
expected "ciphertext: ED...", not "ciphertext: ED..."
:( encrypts "BaRFoo" as "FeVJss" using 4 as key
expected "ciphertext: Fe...", not "ciphertext: Fe..."
:( encrypts "barfoo" as "onesbb" using 65 as key
expected "ciphertext: on...", not "ciphertext: on..."
:( encrypts "world, say hello!" as "iadxp, emk tqxxa!" using 12 as key
expected "ciphertext: ia...", not "ciphertext: ia..."
:) handles lack of argv[1]
:) handles non-numeric key
:) handles too many arguments
but the output match.... Any idea?
idk
i'm also getting thi with similiar code
were u able to do it?
What if the user enters an alphabet instead of a number in place of key?