C 检查字符数组是否包含特定单词
我正在尝试连接wifi模块。 因此,我需要在接收\r\nOK\r\n时读取缓冲区 这是我的源文件:C 检查字符数组是否包含特定单词,c,C,我正在尝试连接wifi模块。 因此,我需要在接收\r\nOK\r\n时读取缓冲区 这是我的源文件: typedef struct { char ReceivePacket[200]; char PacketCounter; }ModbusRequest_; volatile ModbusRequest_ ModbusRequest; 这是在一个空洞中运行 if(strstr(ModbusRequest.ReceivePacket, "\r\nOK\r\n"))
typedef struct
{
char ReceivePacket[200];
char PacketCounter;
}ModbusRequest_;
volatile ModbusRequest_ ModbusRequest;
这是在一个空洞中运行
if(strstr(ModbusRequest.ReceivePacket, "\r\nOK\r\n"))
{
//execute
}
但我没有得到任何结果,它不会执行我的代码。此外,我的产品还包括:
#include <string.h>
#include <stdlib.h>
#包括
#包括
modbus请求.ReceivePacket变量中包含哪些内容,您看了吗?(即,在日志文件中,或在调试模式下使用断点?您确定字符串“\r\nOK\r\n”
确实发送过吗?请尝试仅搜索“OK\r\n”
可以在printf中看到它。但是,如果我将使用此代码,则在以下情况下它会工作:(ModbusRequest.receivepacketcounter]='K'&&ModbusRequest.receivepacketcounter[PacketCounter-1]=‘O’)首先尝试与\r
进行字符串匹配,看看是否返回指针。如果返回指针,则尝试与\r\n
进行匹配,依此类推。让我们知道发生了什么。是否保证modbus消息以null结尾?如果K
与打包计数器
一致,则永远看不到最后一个\r\n
K
是读取的最后一个字节。请将搜索条件更改为\r\nOK