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".
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");
}