如何正确比较命令行参数?

前端之家收集整理的这篇文章主要介绍了如何正确比较命令行参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个在main中接受参数的C代码;因此当我在cmd中写一些字符串时,程序会在其中执行某些操作.但我做错了什么,我找不到它.

这是代码

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

在cmd;

gcc -o gender main.c

gender -s pilkington

我输入那些命令.总是输出

“OMG!!”

哪部分错了?

解决方法

在你的代码中,argv [1] ==“ – s”是错误的部分.使用==运算符无法完成字符串的比较.

要比较字符串,您需要使用strcmp().

你的代码应该是这样的

if ( ! strcmp(argv[1],"-s")) { //code here }

如果你想检查argv [1]是否包含“-s”.

猜你在找的C&C++相关文章