我在比较邮件内容以验证其是否正确方面遇到了一些麻烦 但问题是我不断得到分段错误。 这是我的代码:
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");
}
}
答案 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[]
的结尾。