Can someone please help. Im new to programming and doing the cs50 course. The task is to scramble plain text based on a code word. The language is C and on linux.
I seem to have it all working but I am banging my head for the last 2 hours trying to fix the last error when compiling the program. The problem I am having is the bottom half of the program (after the //Cipher funtion bit)
This is the error:
viginere.c:39:5: error: expected expression
else
^
viginere.c:44:5: error: expected expression
else
^
2 errors generated.
I cant see what I have done wrong with this.
I have messed around with the {} in several different places but I dont think that is the problem as this program is a modified version of a program i made before and that one works, with the same layout (just different with a slightly different printf) What am I missing?
Heres my code:
int main (int argc, string argv[])
{
//change command line string to a number
int k = atoi(argv[1]);
string v = argv[1];
//check program command line was typed correctly
if (argc != 2 || k != 0)
{
printf("Restart program with keyword in command line (alphabetical characters only)\n");
return 1;
}
//Get Plain Text
printf("The keyword is set to %s.\nType in your plain text: ", argv[1]);
string s = GetString();
//Print Cipher
printf("Your cipher text = ");
//Set variables for mudulo on keyword
int codecount = strlen(argv[1]);
int c = 0;
//Cipher function (Errors are in this part)
for (int i = 0; i < strlen(s); i++)
{
//Cipher uppercase
if (isupper(s[i]))
printf("%c", (s[i] + v[c%codecount] - 65)%26 + 65);
c++;
//Else Cipher lowercase
else
if (islower(s[i]))
printf("%c", (s[i] + v[c%codecount] - 97)%26 + 97);
c++;
//Print all else as normal
else
printf("%c", s[i]);
}
printf("\n");
}