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".

Original source