gpt4 book ai didi

关于 if 语句和 strcmp 与字符串的混淆

转载 作者:太空宇宙 更新时间:2023-11-04 06:34:05 24 4
gpt4 key购买 nike

在这里,我需要一些帮助来理解字符串。我有一个 buff,它被刷新然后传递给 UART 函数。该缓冲区现在已更新并保留了一些值。我需要检查缓冲区的第 5 个字节。令我困惑的是,我在下面写了代码。请看一下。

int main()  
{
char buff[8];
memset(buff,0,8);

/*
This buff is used by some UART function, and hence is updated by UART
This buff now holds some data. And now, I need to check the 5th byte it is holding.
*/

if(buff[4]==0x04) //will this work? or I need to use if(strcmp(buff[4],0x04)) ???
{
//Do some functionality, for an example
printf("True");
}
else
printf("False");

return 0;
}

最佳答案

你的代码是正确的,是的。

为此使用 strcmp() 只有在您知道 '\x04' 字符后跟一个 '\0' 时才有效> 字符串终止符。由于它看起来像二进制数据,所以使用 strcmp() 会很奇怪。

不是以任何方式比较“字符串”,因此使用== 没问题。在 C 中,“字符串”表示“一个(指向一个)以 0 结尾的 char 数组”。这不是您要处理的内容,因此有关如何处理字符串的任何经验教训都不适用。

关于关于 if 语句和 strcmp 与字符串的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16936604/

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