2017-09-17 8 views
-3

最近C言語のプログラミングを始めました。私はシンプルなyes/noプログラムを書こうと思っていましたが、私のコードには解決策が見つからないようなエラーがあります。ここで 論理OR演算子を使用したときのコードのエラー

はコードです:
#include <stdio.h> 

int main() 
{ 
char answer[10]; 


printf("do you like programming? yes/no\n"); 
scanf(" %s", &answer); 

if((answer == 'yes')|| (answer == 'no')){ 
    printf("you are awesome\n"); 
} 
else{ 
    printf("try again\n"); 
} 
return 0; 
} 

私が使用してY/Nの代わりにはい/いいえ、プログラムが正常に動作し

。 私はcharをstringに置き換える必要があることを知っていますが、その方法はわかりません。私はどこかstrcmpという関数を使う必要があると読んでいますが、どちらを使うかわかりません。誰かが私を助けることができたら、本当に感謝しています。

ありがとうございます!

+1

私は 'strcmp'を読むことをお勧めします。 –

答えて

0

if((answer == 'yes')|| (answer == 'no'))と入力すると、この場合の==演算子は文字列を比較するのではなく、文字列のポインタを比較しています。文字列の等価性をテストするには、strcmpを使用します。 ifステートメントは、次のようになります。

#include <string.h> 

... 

if(strcmp(answer, "yes") == 0 || strcmp(answer, "no") == 0) { 

...