我在嵌入式系统中使用c语言。我有这个uint8数组。
static uint8_t data_array[20];
数据数组的内容以
'\n'
结束。我想检查前3个字节是否是“abc”。我就是这样做的。
if (data_array[0]=='A' && data_array[1]=='B' && data_array[2]=='C')
{
printf("pattern found\n");
}
有没有更优雅的方式来检测图案?如果模式由10个字节组成,我的方法可能会很麻烦。
最佳答案
使用循环:
static uint8_t data_array[20] = "ABC";
static uint8_t s[4] = "ABC";
static uint8_t length = 3;
uint8_t bool = 1;
for (int i = 0; i < length; i++) {
if (s[i] != data_array[i]) {
bool = 0;
break;
}
}
if (bool) {
printf("pattern found\n");
}
Live code here