2017-05-27 17 views
0

char(x)letterを割り当てようとする行に「期待される式」エラーが表示されています。次のように単純なforループCで期待される式のエラーC

私のコードは次のとおりです。

#include <stdio.h> 

int main(void) { 
    printf("Hello, World!\n"); 
    char letter; 
    for(int x=97; x<=122; x++){ 
     letter = char(x); //error occurs on this line 
     printf("%c\n", letter); 
    } 
    return 0; 
}  

すべてのヘルプは大歓迎です!

+3

変数をどのようにキャストしているかは分かりません。試してみましょう 'letter =(char)x;' –

+1

ところで、キャストはまったく必要ありません。 'letter = x'も同様に動作します –

+3

' char(x) 'という表記はC++では有効ですがCでは有効ではありません。Cでは'(char)x'表記を使用しなければなりません。 ( 'letter = x;'はうまくいくでしょう) –

答えて

4

あなたは型キャストしようとしている場合は、あなたが行う必要があります。

(char)x; 

ない

char(x); 
+1

C++では 'char(x)'表記を代替キャストとして許可していますが、しかし、あなたはCがそれを許さないというのは正しいです。 –

3

あなたが明示的に型キャストされているが、これをしている間、あなたがC++の表記法を使用しています。これに

変更し、その行:

letter = (char)x; 
1

あなたはcharxを変更する場合は、xを型キャストする必要はありません。

letter = x; 

別の排除、あなたは完全に手紙をドロップすることができますし、使用します。

printf("%c\n", x); 
1

をするだけの不要なキャストを避けるため、また、クリーンなコードを持っている:

for(int x='a'; x<='z'; x++){ 
    printf("%c\n", x); 
} 

char letterの必要はありませんですべて、のマジックナンバーの必要はありません。

関連する問題