web-dev-qa-db-fra.com

Comment comparer simplement des caractères en C ++?

J'ai le code suivant:

#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;
}

Peu importe quelle entrée je donne, true est toujours retourné. Ma syntaxe est-elle désactivée? Toute aide serait appréciée.

7
Dmitriy Potemkin

En C++, vous utilisez == en comparaison. Le = est une tâche. Il peut être utilisé dans la condition d'une instruction if, mais il va être évalué à true à moins que le caractère ne soit '\0' (ne pas '0', comme dans votre cas):

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

Dans l'instruction if, utilisez ==. Par exemple:

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

== compare, mais = rend fg égal à x[0], et c'est pourquoi vous devenez vrai à chaque fois.

1
Rijesh4