gpt4 book ai didi

c - 即使两个值相同,strcmp() 如何返回 -1?

转载 作者:行者123 更新时间:2023-12-02 05:25:45 25 4
gpt4 key购买 nike

当我将输入作为“x”时,compVal 给出的值为 -1。我期待 0,因为两个值相同。请有人解释原因。

char ch = getchar();
int compVal = strcmp("x", &ch);

最佳答案

你必须给 strcmp 两个字符串。字符串是 char 的数组,最后一个值为 \0

在您的示例中,您传递给它的第二个值只是一个 char 的地址,并且没有字符串终止符,因此该函数会盲目地前进,直到它找到一个 0(与 \0 相同)。

您应该将 strcmpchar vector 一起使用,例如 char ch[2](一个值代表您想要的字符,另一个值对于我之前提到的 \0 或者,在您的情况下,您应该只使用 == 运算符,因为您只想比较一个字符。

关于c - 即使两个值相同,strcmp() 如何返回 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17134488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com