I give up, I can't make it work. Please kindly point me to a line where I make mistake.
// input validation
if (argc != 2)
{
printf("Invalid argument. Please, try again\n");
return 1;
}
for (int i = 0, n = strlen(argv[1]); i < n; i++)
{
int letter = argv[1][i];
if (isalpha(letter) == 0)
{
printf("Invalid argument. Please, try again\n");
break;
}
}
string p = GetString();
//gets the text enciphered
for (int i = 0, len = strlen(p); i < len; i++)
{
int key = argv[1][i];
if (isupper(key))
{
key = key - 65;
}
if (islower(key))
{
key = key - 97;
}
int letter = p[i];
if (isalpha(letter))
{
if (isupper(letter))
{
int a = ((letter - 65 + key) % 26 + 65);
printf("%c", a);
}
if (islower(letter))
{
int a = ((letter - 97 + key) % 26 + 97);
printf("%c",a);
}
}
else
{
printf("%c", letter);
}
}
printf("\n");
}
When I test for
Meet me at the park at eleven am
I get
Negh mq ni mon wodo uu reyqya mh
Instead of
Negh zf av huf pcfx bt gzrwep oz