比较C中的两个Char

时间:2015-12-10 11:14:42

标签: 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");
    }
 }

2 个答案:

答案 0 :(得分:2)

rx_buffer没有NUL终止符。所以你不能在它上面使用strcmp()。看看你的比较,你真的想比较字符。 因此,请使用==运算符:

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

strcmp()用于比较C字符串(由NUL字节终止的字符),这不是你所拥有的。

答案 1 :(得分:0)

应使用char比较==

strcmp()来电读过rx_bytes[]的结尾。