为什么命令行参数的字符串比较不起作用?

时间:2012-05-05 16:08:24

标签: c++ command-line-arguments

int main(int argc, char *argv[])
{
    cout << strcmp(argv[1], "id");
    return 0;
}

返回false。我错过了什么?

谢谢我让它工作,将在4分钟内接受答案。

3 个答案:

答案 0 :(得分:7)

如果被比较的c字符串相等,则

strcmp返回0。 0 == false,因此它实际上正在发挥作用。

答案 1 :(得分:2)

如果2个字符串为equal

strcmp将返回0。

提示:要避免数组超出绑定异常(Segmentation Fault),请使用以下命令:

if (argv < 2) return 0;

答案 2 :(得分:0)

从输出argv [1]开始会更容易:

cout << argv[1] << endl;

然后你可以看到你在argv [1]上获得了什么价值,然后从那里拿走它。您的代码没有任何问题,因此我猜您没有正确配置IDE以传递正确的argv [1]参数。

如上所述,你应该得到0,而不是假。