int main(int argc, char** argv)
{
// retrieve the first argument passed to the program (action)
char action = argv[1][0];
// retrieve the second argument passed to the program (key)
char* key = argv[2];
// initialize character position in the key
int i = 0;
// initialize the current input character
int c = 0;
// loop until we reach the end of input
while (c != -1){
// get a character from stdin
c = getchar();
if (action == 'E'){
// encode the current character
putchar(c + key[i]);
} else{
// decode the current character
putchar(c - key[i]);
}
// increment the position in the key string, without overflow
i = (i + 1) % strlen(key);
}
}