Strugglingw with Vigenere! (In C) invalid operands to binary expression ('int *' and 'int') and other things : we are now working with caesar, vigenere. I mannaged to finish caesar but vigenere is not working as good. C gives me back:  invalid operands to binary expression ('int *' and 'int'). I'm not sure what the program means exactly and what is wrong with my code. Can somebody help me out or give me advice? I think it's because I can not count with the different types of numbers? I'm not sure!

    #include <cs50.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    #include <stdlib.h>

    int main(int argc, string argv[])
    {
    if (argc != 2)
    {
        printf("You have to input a key, try again!\n");
        return 1;
    }

    string key = argv[1];
    int keylength = strlen(key);

    for (int i = 0; i < keylength; i++)
    {
        if (!isalpha(argv[1][i]))
        {
            printf("Please insert letters, nothing else\n");
            return 1;
        }
    }

    printf("plaintext: ");
    string plain = get_string();


    int keycipher[keylength];
    for(int i = 0; i < keylength; i++)
    {
        keycipher[i] = toupper(key[i]) - 65;
    }

    if (plain != 0)
    {
        printf("ciphertext: ");
        int i;
        for (i = 0, keylength = strlen(key); i < keylength; i++)
        {
            if (isupper(plain[i]))
            {
                printf("%c", (plain[i] - 65 + keycipher) % 26);
            }
            else if (islower(plain[i]))
            {
                printf("%c", (plain[i] - 97 + keycipher) % 26);
            }
            else if (plain[i] == ' ')
            {
                printf(" ");
            }
            else
            {
                printf("%c", plain[i]);
            }
        }
    }
    return 0;
}

     