Why comparing 2 strings doesn't give desired result?
Why comparing 2 strings doesn't give desired result?
Below is the code I've come up with and in all honesty tonight is my first attempt at coding at all. However I cannot seem to get my if
statement to work properly. It just simply jumps to else even if I type Westley or westley or (space)Westley.
I want the program to be able to accept any of my team members names however I figured I get my name working and then I could add the rest of them later. Any thoughts or help would be wonderful. Also as a side note I was going to try and loop it if it went to the else back up to the begining any thoughts on that as well? Thank you
#include using namespace std; int main () { char Westley[] = "Westley"; char Alex[] = "Alex"; char Andrea[] = "Andrea"; char Bee[] = "Bee"; char Gia[] = "Gia"; char KaYeng[] = "Ka Yeng"; char Chi[] = "Chi"; char Corinne[] = "Corinne"; char Joyce[] = "Joyce"; char Parish[] = "Parish"; char membername [80]; cout << "Please Enter a Beta Team Members Name.\n"; cin >> membername; if (membername == Westley) { cout << "BETA TEAM ROSTER!!\n"; cout << "Westley.\n"; cout << "Alex.\n"; cout << "Andrea.\n"; cout << "Bee.\n"; cout << "Gia.\n"; cout << "Ka Yeng.\n"; cout << "Chi.\n"; cout << "Corinne.\n"; cout << "Joyce.\n"; cout << "Parish.\n"; } else cout << "Not a Valid Beta Team Members Name!\n" << "Please Enter a Beta Team Members Name"<< endl; cin >> membername; return 0; }
Answer by Anders K. for Why comparing 2 strings doesn't give desired result?
Since it is arrays you are working with you need to use strmcp instead e.g.
if (!strcmp(membername, Westley) ...
since you are working in C++ use instead string:
#include using namespace std; string Westley = "Westley";
... then you can do
if (membername == Westley) ...
Answer by dip for Why comparing 2 strings doesn't give desired result?
You can not use "==" operator. Try to find out more about
strcmp
if (strcmp(membername, "Westley") == 0) ...
Answer by Donal Fellows for Why comparing 2 strings doesn't give desired result?
Don't use char[]
; use std::string
for this sort of thing as that knows how to do comparisons in a helpful way (comparisons between char arrays test if they are the same array, not if the contents is identical).
Answer by danishgoel for Why comparing 2 strings doesn't give desired result?
this is c++ and you are using a char array not a string you need to use strcmp
for string comparison
you can do this like
if(strcmp(membarname, Westley))
or if possible you can use std::string
instead of char[]
to store a string then you can use ==
operator
you can use the std::string
as follows
#include using namespace std; int main(){ string Westley = "Westley"; .... string membername; cout << "Please Enter a Beta Team Members Name.\n"; cin >> membername; if (membername == Westley){ .... } .... }
Answer by Constantinius for Why comparing 2 strings doesn't give desired result?
First of all, if you are coding with C++ you should use std::string
instead of char []
. It has the convenience that you can compare two strings (alas with char []
you have to call functions like strcmp
or the like).
For example:
#include #include // <-- important using namespace std; int main () { string Westley("Westley"); ... if(membername == Westley) // now works! { ...
Answer by iammilind for Why comparing 2 strings doesn't give desired result?
Instead of character array char[]
; use std::string
and you will get the desired result.
if (membername == Westley)
Because, for char[]
data, above comparison results in address comparison and not the content comparison.
Answer by hansmaad for Why comparing 2 strings doesn't give desired result?
The == operator you are using compares the addresses of the strings. To compare two C Strings use the strcmp
function from
(string.h
). In C++ you should use the std::string
class template, which can be intuitively compared using the == operator.
Answer by Huskar for Why comparing 2 strings doesn't give desired result?
if (membername == Westley)
only compare two pointers' value.
Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72
0 comments:
Post a Comment