web-dev-qa-db-ja.com

C ++で文字を単純に比較するにはどうすればよいですか?

私は次のコードを持っています:

#include <iostream>
using namespace std;
int main()
{
    char fg;
    cin>>fg;
    char x[20];
    x[0]='0';
    if(fg=x[0])
    {
        cout<<"It's true!"<<endl;
        return true;

    }
    cout<<"It's false!"<<endl;
    return false;
}

どんな入力をしても、trueは常に返されます。構文はオフですか?任意の助けいただければ幸いです。

7

C++では、比較に==を使用します。 =は割り当てです。これは、ifステートメントの条件で使用できますが、文字が'\0'でない限り、trueと評価されます('0'ではありません)。

if(fg == x[0])
{
    ...
}
17
dasblinkenlight

Ifステートメント内では==を使用します。例えば:

if (fg == x[0]) {
    //...........   
}

==は比較しますが、=fgx[0]に等しくします。そのため、毎回trueになります。

1
Rijesh4