I am trying to write a C code which takes arguments in main; thus when I write some strings in cmd, the program doing somethings inside it. But I am doing something wrong and I can't find it.
This is the code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]){ //File name is main.c
if(argc != 3)
printf("Wrong!!!!!!!!!");
else
if (argv[1] == "-s")
girls(); //Prints "Girls"
else if(argv[1] == "-k")
boys(); //Prints "Boys"
else
printf("OMG!!");
}
In the cmd;
gcc -o gender main.c
gender -s pilkington
I enter that commands. Bu the output is always
"OMG!!"
Which part is wrong?
You have to compare the string using the strcmp function. You cannot simply check the string in equality operator.
Try this in your code.
if you check the
argv[1] == "-s"
the condition will not be true. since it is a string you can use the strcmp function.Try this..
Compare the two strings using the strcmp(s1,s2) function.
In your code,
argv[1] == "-s"
is the erroneous part. comparison of strings cannot be done with==
operator.To compare strings, you need to use
strcmp()
.Your code should look like
if you want to check if
argv[1]
contains"-s"
or not.