繁体   English   中英

比较C中的两个Char

[英]Comparing two Char in C

我在比较消息的内容以验证其内容是否正确时遇到了一些麻烦,但是问题是我不断遇到分段错误。 这是我的代码:

int main()
{
    unsigned char rx_buffer[6];
    rx_buffer[0]='A';
    rx_buffer[1]='1';
    rx_buffer[2]='5';
    rx_buffer[3]='6';
    rx_buffer[4]='8';
    rx_buffer[5]='B';
    if (strcmp(rx_buffer[0],'A')==0 && strcmp(rx_buffer[5],'B')==0)
    {
        printf("Correct Message\n");
    }
 }

rx_buffer没有NUL终止符。 因此,您不能在其上使用strcmp() 查看您的比较,您真的很想比较字符。 因此,使用==运算符:

if ( rx_buffer[0] == 'A' && rx_buffer[5] == 'B' ) {
     printf("Correct Message\n");
}

strcmp()用于比较不是您所拥有的C字符串(以NUL字节结尾的字符的序列)。

比较char应该用==完成。

strcmp()调用读取到rx_bytes[]的末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM