简单的for循环我写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()中有相同的循环,它的工作很好。 有人可以解释我的问题吗? 谢谢!
函数的恒等式完全:
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;
}
旁注:用布尔结果与'1'或者'0'不要比较功能! '如果(!isalpha(..))'更容易阅读('!'读作“不”),只需大声说出两个表达式。 – Olaf
您是否尝试删除第二个“int”? – Olaf