== w odniesieniu do char* ma bardzo ostre kryteria. Nie tylko napisy muszą być identyczne. Żeby warunek był prawdziwy, po obu stronach musi być dokładnie ten sam napis. Oznacza to, że napis nie jest równy swojej kopii, ponieważ ona jest przechowywana gdzie indziej. Jeśli chcesz bardziej intuicyjnego porównywania, użyj funkcji strcmp. Możesz też zapoznać się z std::string, czyli typem przechowywującym ciąg znaków, który da się normalnie porównywać.