0

在这里,我需要一些帮助来理解字符串。我有一个 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;  
}  
4

1 回答 1

4

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

strcmp()仅当您知道该'\x04'字符后跟一个'\0'字符串终止符时,才使用此方法。由于它看起来像二进制数据,因此使用strcmp().

没有以任何方式比较“字符串”,所以使用==很好。在 C 中,“字符串”表示“一个(指向一个)以 0 结尾的数组char”。这不是你要处理的事情,所以任何关于如何处理字符串的教训都不适用。

于 2013-06-05T09:47:40.443 回答