+ 2

How to perform equality check on chars

I'm trying to perform an equality check on chars based on user input but I always get an Error when I try this. This is just a sample code of what I'm talking about char opp[1]; scanf("%c",opp); if(opp == 'c') { printf("hello"); } But I always get an Error on that if statement Thanks in advance

16th Nov 2020, 1:18 PM
Sudo
Sudo - avatar
4 Réponses
+ 3
no need char array.. Just put char opp;
16th Nov 2020, 1:25 PM
Jayakrishna 🇮🇳
+ 3
Thanks but I'm hit with segmentation fault
16th Nov 2020, 1:28 PM
Sudo
Sudo - avatar
+ 2
Also You need &opp for taking char... Chidera char opp; scanf("%c",&opp); if(opp == 'c') { printf("hello"); }
16th Nov 2020, 1:31 PM
Jayakrishna 🇮🇳
+ 2
I suggest you use a single char, not char[], but I assume you are asking "What if I use char[1]?", the reason why you get an error is that when you make it char[], opp is the same as '&opp[0]', so your scanf is fine since opp can be said as &opp[0]. However, your if is wrong, you are trying to compare a constant char with an address of opp[0], instead, try 'if (*opp == 'c')', that way, you are comparing a pointer that points to a character with a character.
17th Nov 2020, 7:44 AM
LastSecond959
LastSecond959 - avatar