I'd like a little guidance as to what functions I should use that are
most effective.
For encoding and decoding, I have this piece of code:
int code(char c)
{
if(c >= 'A' && c <= 'Z')
return 10 + c - 'A';
else if(c >= '0' && c <= '9')
return c - '0';
}
int decode(char c)
{
if(c >= '0' && c <= '9')
return c + '0';
else if(c >= 10)
return c - 10 + 'A';
}
char encode(char c, char k)
{
return decode((code(c) + code(k)) % CBASE);
}
int main(int argc, char *argv[])
int key_length = strlen(argv[2]);
int key_count = 0;
int c;
while((c = getchar()) != EOF)
{
putchar(encode((char) c, argv[2][key_count%key_length]));
key_count++ ;
}
return EXIT_SUCCESS;
}
It sort of works but it always returns one letter/number more than it
was given in the input text.
So, when I have a key HELLO and input text MORNING, it will give me
32C864U, while it should be only 32C864.
I haven't yet found out what piece of code adds the extra letter
there, any ideas?