я пишу functiton, что проверка строка содержит только буквы или нет, если я объявляю n
вне цикла:.Ожидаемый идентификатор или «(» в простом для петли в C
int n = strlen(str);
for (int i = 0; i < n; i++)
это не имеет ошибок и отлично работает, но если я двигаю n
объявление внутри:
for (int i = 0, int n = strlen(str); i < n; i++)
у меня есть ошибки:
vigenere.c:71:21: error: expected identifier or '('
for (int i = 0, int n = strlen(str); i < n; i++)
^
vigenere.c:71:21: error: expected ';' in 'for' statement specifier
vigenere.c:71:21: error: expected expression
vigenere.c:71:46: error: use of undeclared identifier 'n'
for (int i = 0, int n = strlen(str); i < n; i++)
^
vigenere.c:71:47: error: expected ')'
for (int i = 0, int n = strlen(str); i < n; i++)
^
vigenere.c:71:9: note: to match this '('
for (int i = 0, int n = strlen(str); i < n; i++)
^
vigenere.c:71:49: error: use of undeclared identifier 'i'
for (int i = 0, int n = strlen(str); i < n; i++)
^
6 errors generated.
Почему? У меня такой же цикл в main(), и он отлично работает. Может ли кто-нибудь объяснить мне проблему? Спасибо!
Fuction полностью:
int is_alpha_string(string str)
{
//for (int i = 0, int n = strlen(str); i < n; i++)
int n = strlen(str);
for (int i = 0; i < n; i++)
{
if (isalpha(str[i]) == 0)
{
return 0;
}
}
return 1;
}
Sidenote: Не сравнивайте функции с логическим результатом с '1' или' 0 '! 'if (! isalpha (..))' намного легче читать ('!' читает как «не»), просто произносите вслух оба выражения. – Olaf
Вы попытались удалить второй 'int'? – Olaf