Для проблемы в классе CS50 я должен проверить, является ли ключ действительным, то есть, является ли введенный пользователем ввод числа. Я пробовал разные коды, но каждый раз, если на входе хотя бы одна цифра, возвращается, что ключ правильный. Хотя это должно быть правильно только в том случае, если все символы строки являются цифрами ...
#include <cs50.h>
#include <stdio.h>
#include <string.h>
# include <ctype.h>
int main(int argc, string argv[])
{
if (argc !=2)
{
printf("Usage: %s key\n", argv[0]);
return 1;
}
else
{
for (int i = 0; i <= (strlen(argv[1])); i++)
{
if (isalpha(argv[1][i]))
{
printf("Usage: ./caesar key \n");
return 1;
}
else
{
printf("%s\n", argv[1]);
return 0;
}
}
}
}
Когда на входе больше 2 строк, он должен возвращать 1 (это работает);
Когда строка [1] не является числом, она должна возвращать 1 (это тоже работает);
, когда строка [1] является числом, она должна печатать 2 строки (не работает);
Например: я ожидаю, что ./caesar 222f вернется: Использование: ./caesar ключ, но фактический результат равен 222f