../Core/Src/main.c(240): error: #167: argument of type "char" is incompatible with parameter of type "const char *"以上为错误,错误代码为if (strstr(receivedData, str) != NULL),该如何修改
时间: 2024-03-26 19:39:00 浏览: 172
(存入json文件出错)TypeError: Object of type int64 is not JSON serializable
5星 · 资源好评率100%
这个错误是由于函数strstr的第一个参数应该是一个指向字符的指针,即const char *类型,而你传入的参数receivedData是一个字符数组,类型为char []。所以需要将receivedData转换成一个指向字符的指针,才能作为strstr函数的参数。
修改代码如下:
```c
char receivedData[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x03, 0x05, 0xCB};
char str[] = "0x00 0x00 0x00";
char *ptr = (char *) receivedData; // 将receivedData转换成char指针类型
if (strstr(ptr, str) != NULL) {
printf("receivedData contains str.\n");
} else {
printf("receivedData does not contain str.\n");
}
```
在这个例子中,我们定义了一个字符数组receivedData和一个字符串常量str。然后,使用强制类型转换将receivedData转换成char类型的指针ptr,并将ptr作为strstr函数的第一个参数传入。这样就能避免上述类型不匹配的错误,从而能够正确地判断receivedData中是否包含字符串str。
阅读全文