当我将输入作为“x”时,compVal 给出的值为 -1。我期待 0,因为两个值相同。请有人解释原因。
char ch = getchar();
int compVal = strcmp("x", &ch);
最佳答案
你必须给 strcmp 两个字符串。字符串是 char
的数组,最后一个值为 \0
。
在您的示例中,您传递给它的第二个值只是一个 char
的地址,并且没有字符串终止符,因此该函数会盲目地前进,直到它找到一个 0
(与 \0
相同)。
您应该将 strcmp
与 char
vector 一起使用,例如 char ch[2]
(一个值代表您想要的字符,另一个值对于我之前提到的 \0
或者,在您的情况下,您应该只使用 ==
运算符,因为您只想比较一个字符。
关于c - 即使两个值相同,strcmp() 如何返回 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17134488/