gpt4 book ai didi

c - 为什么在 C 中比较字符串不起作用?

转载 作者:太空狗 更新时间:2023-10-29 15:09:26 25 4
gpt4 key购买 nike

我有以下程序

main()
{

char name[4] = "sara";
char vname[4] = "sara";

if(strcmp(name, vname) == 0)
{
printf("\nOK");
}
else
{
printf("\nError");
}

}

这个程序总是打印“错误”...这里有什么问题帮助我

但是如果我更改 char vname[] = "sara",那么它会打印出“OK”...为什么??

最佳答案

您正在硬调整数组的大小,以致于它们对于字符串而言太短(它们不包含空终止符的附加字符)。因此,在进行比较时,strcmp 会运行到字符串末尾,从而产生本质上不可预测的结果。你很幸运没有遇到段错误。

关于c - 为什么在 C 中比较字符串不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480312/

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