How to compare a char?
assignment-operator, c, char, conditional-statements
Solution
First of, in C single quotes are char literals, and double quotes are string literals. Thus, 'C' and "C" are not the same thing.
To do string comparisons, use strcmp.
const char* str = "abc";
if (strcmp ("abc", str) == 0) {
printf("strings match\n");
}
To do char comparisons, use the equality operator.
char c = 'a';
if ('a' == c) {
printf("characters match\n");
}
Problem
I am learning c. I have a question. Why doesn't my program work? ``` #include<stdio.h> #include<conio.h> #include<stdlib.h> char cmd; void exec() { if (cmd == "e") { printf("%c", cmd); // exit(0); } else { printf("Illegal Arg"); } } void input() { scanf("%c", &cmd); exec(); } int main() { input(); return 0; } ``` I insert a "e" but it says illegal arg. cmd is not equal to "e". Why? I set cmd with scanf to "e".