で、単純なforループでは、私はfunctitonを書き、そのチェックが文字列では、文字だけやないが含まれている私はループの外n
を宣言する場合:。予想される識別子または「(」C
int n = strlen(str);
for (int i = 0; i < n; i++)
それはエラーがないと素晴らしい作品が、私は内部のn
宣言を移動した場合:
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.
:
for (int i = 0, int n = strlen(str); i < n; i++)
私はエラーを持っています0
なぜですか?私は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;
}
追記を使う必要はありません: '1'または '0'とブール結果と機能を比較しないでください! 'if(!isalpha(..))'ははるかに読みやすく( '!'は "not"と読みます)、両方の表現を大声で話してください。 – Olaf
2番目の 'int'を削除しようとしましたか? – Olaf