> why every time I try the results are always false.
This is, because when you compare a "C string" (not a c++ std::string object!), then what you really do is comparing two char * or const char *.
This means, you do not really check if two c-strings have the same characters in the same order, but rather you compare pointers, whether they point to the same place in memory.
If you want to compare strings in C, you should use strcmp(str1, str2) or strncmp(str1, str2, num_chars_to_compare) or similar methods.
In C++, you can freely compare std::string objects as they are not pointers.
Note: if (a == std::string("EVEN")) works, because what it does is converts the c-string to c++string (via the std::string constructor) and the equality operator will know how to compare a c-string to a c++ string (thanks to the c++ string's specification, how to compare it to a const char *).
For reference:
- http://www.cplusplus.com/reference/cstring/strcmp/
- http://www.cplusplus.com/reference/cstring/strncmp/
- http://www.cplusplus.com/reference/string/string/