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?
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 ( ! strcmp(argv[1], "-s")) { //code here }
if you want to check if argv[1]
contains "-s"
or not.
Compare the two strings using the strcmp(s1,s2) function.
if (strcmp(argv[1],"-s")==0)
girls(); //Prints "Girls"
else if(strcmp(argv[1],"-k")==0)
boys(); //Prints "Boys"
else
printf("OMG!!");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With