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

它返回假。我错过了什么?

谢谢我得到它的工作,将在 4 分钟内接受答复。

4

3 回答 3

7

strcmp如果被比较的 c 字符串相等,则返回 0。0 == false,因此它实际上正在工作。

于 2012-05-05T16:11:22.407 回答
2

strcmp如果 2 个字符串相等,则返回 0 。

提示:为避免数组越界异常(Segmentation Fault),请使用:

if (argv < 2) return 0;
于 2012-05-05T16:11:35.797 回答
0

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

cout << argv[1] << endl;

然后您可以看到您在 argv[1] 上获得的价值并从那里获取。您的代码没有任何问题,所以我猜您没有正确配置 IDE 以传递正确的 argv[1] 参数。

如上所述,您应该得到一个 0,而不是一个 false。

于 2012-05-05T16:11:47.133 回答