gpt4 book ai didi

c - if (!strcmp() ... 中的感叹号有什么作用?

转载 作者:行者123 更新时间:2023-11-30 19:24:52 26 4
gpt4 key购买 nike

有人可以解释一下 if 语句中的感叹号的作用(即 !strmcp)吗?

 string names[] = {"EMMA", "RODRIGO", "BRIAN", "DAVID"};

// Search for EMMA
for (int i = 0; i < 4; i++)
{
if (!strcmp(names[i], "EMMA"))
{
printf("Found\n");
return 0;
}
}
printf("Not found\n");
return 1;

最佳答案

对于 if 语句,如果表达式的计算结果为 0,则不执行 if 语句后面的代码块。任何其他值(正或负)都将导致执行代码块。函数 strcmp 使用 0 表示字符串相等,因为小于 0 用于区分大于 0。

因此,在这段代码中,我们希望当字符串相等时执行 printf("Found\n");。由于 strcmp 结果为 0,因此我们需要对该值求反,使其变为 1,这将导致执行该代码块。

关于c - if (!strcmp() ... 中的感叹号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760778/

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