Мне сложно понять, как проверить каждый символ в ключевом слове (argv [1]). Я знаю, что, вероятно, упускаю что-то очень очевидное. :(
Я попытался сохранить строку в массив, объявив новый int, но все та же проблема.
//check to make sure 2nd argument is fully alphabetic
string keyword = argv[1];
for(int i = 0, n = strlen(keyword); i < n; i++)
{
if(isalpha(keyword[i]))
{
printf("Success! \n");
return 0;
}
else
{
printf("Invalid key, must be fully alphabetic. \n");
return 1;
}
}
Ожидаемый результат должен быть «Неверный ключ, должен быть полностью буквенным». для всего, что не полностью алфавитно. Вместо этого он работает только для начального символа, а не для всего ключевого слова.
return
из цикла, после первого теста. Пройдет или проиграет, вот и все, что нужно. - person Weather Vane   schedule 29.05.2019strlen()
должен перебирать строку, чтобы найти конец, но затем вы перебираете строку в любом случае, проще и эффективнее использовать терминатор строки напрямую для завершения цикла:for( int i = 0; keyword[i] != 0; i++ )
- person Clifford   schedule 29.05.2019