[英]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.