I'm having some issues with Caesar. I can't seem to find anything wrong with my code, however, when I run the program, it prints things that seem to make no sense. When I run check50 on it, it's detecting null characters.
Here's my block of code.
int main(int argc, char *argv[])
{
string alpha = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
string alphaup = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
int key = atoi(argv[0]);
int c = 0;
string input = GetString();
for(int i = 0; i < strlen(input); i++)
{
if(isalpha(input[i]))
{
if(isupper(input[i]))
{
c = input[i] + key;
printf("%c", alphaup[c]);
}
else
{
c = input[i] + key;
printf("%c", alpha[c]);
}
}
else
{
printf("%c", input[i]);
}
}
printf("\n");
}
When I run the code, it will print something like this
~/workspace/pset2/ $ ./caesar 13
asdf
S;VX
Here are my error messages
:) caesar.c exists
:) caesar.c compiles
:( encrypts "a" as "b" using 1 as key
\ expected output, but not "S\n"
:( encrypts "barfoo" as "yxocll" using 23 as key
\ expected output, but not "TS\u0003X\u0000\u0000\n"
:( encrypts "BARFOO" as "EDUIRR" using 3 as key
\ expected output, but not "\u0000\u0000ÿ\u0000pp\n"
:( encrypts "BaRFoo" as "FeVJss" using 4 as key
\ expected output, but not "\u0000Sÿ\u0000\u0000\u0000\n"
:( encrypts "barfoo" as "onesbb" using 65 as key
\ expected output, but not "TS\u0003X\u0000\u0000\n"
:( encrypts "world, say hello!" as "iadxp, emk tqxxa!" using 12 as key
\ expected output, but not "\u0000\u0000\u0003\u0000V, ;S\u0000 ZW\..."
:( handles lack of argv[1]
\ expected output, not a prompt for input
https://sandbox.cs50.net/checks/9c1acc5a6fce4787bd067703a37bce2d
Any tips on how to fix this?