2016-05-01 16 views
0

Ich bin ziemlich neu in C++ und haben sich zu einem Problem führen, wenn sie versuchen zwei Zeichen zu vergleichen, hier ein Beispiel:Zeichen miteinander vergleichen?

#define PartOne "He" 
#define PartTwo "llo" 
char Final1Var[] = PartOne PartTwo; 
char ComapreVars[] = "Hello"; 

if(Final1Var == ComapreVars)//This is were the problem occurs, the chars are supposed to be equal to each other BUT for some reason the 'if' statement ends up determining they're not? 
    InGameDialog::Alert("They Match"); 
else 
    InGameDialog::Alert("They Don't Match"); 

Was mit dem Code falsch läuft? Ich kann mir nicht vorstellen, warum das nicht funktionieren würde? Irgendwelche Vorschläge?

+0

Vielleicht möchten Sie [strings] (http://www.cplusplus.com/reference/string/string/) betrachten – Stephen

+1

Dies ist nicht "cimparing zwei Zeichen". Dies vergleicht zwei * C-artige Zeichenarrays *. Verwenden Sie stattdessen "std :: string" für Ihre stringbezogenen Anforderungen. –

Antwort

-1

in C++ - Zeichen-Array konnte nicht mit == Operator verglichen werden, müssen Sie strcmp Funktion oder Zeichenfolge Vergleichsfunktion verwenden.

-1

Dies ist eine sehr häufige Frage. Ich werde es als Duplikat kennzeichnen, wenn ich unter den anderen Fragen eine gute Antwort darauf finde. In der Zwischenzeit vergleichen Sie nicht char s, Sie vergleichen char[] s, was völlig anders ist Sie möchten strcmp, strncmp oder std :: string verwenden, wäre eine noch bessere Lösung.

What is array decaying? hat einige vernünftige Erklärungen für das, was in Ihrem Code passiert und warum.

Verwandte Themen