函数名: strstr
函数原型:extern char *strstr(const char *str1, const char *str2);
语法:* strstr(str1,str2)
str1: 被查找目标 string expression to search.
str2: 要查找对象 The string expression to find.
返回值:该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL(没有返回)
当要查询的字符串有双引号(单引号)用"%s"来写
例:strstr((const char *)RxBuf, (const char *)""data":0")
自我解释
在str1是被查询的字符串,str2是你要查询的字符。如果有返回字符串的其余部分(从匹配点,例如需要查找12,串口发送2512425,者返回12425)。没有找到,返回NULL。
HAL_UART_Receive(&huart1,Rec,20,0xff);
//读取串口1数据,并将数据存放到Rec中,共读取20个字节数据。
if(strstr((char *)Rec,"1")!=NULL)
//判断串口是否有发送指令“1”
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);
//点亮PE5
for(i=0;i<20;i++)
Rec[i]=0;
//清除串口接受数组里的数据
}
else if(strstr((char *)Rec,"2")!=NULL)
//判断串口是否有发送指令“2”
{
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);
//关闭PE5
for(i=0;i<20;i++)
Rec[i]=0;
//清除串口接受数组里的数据
}
在这段程序中,如果打1或2,程序会正常显示,如果打11者会显示打1时的程序因为优先级是先判断有没有1,而不是有没有11
头文件
string.h