查找特定字符串函数求教

2019-07-16 05:08发布

部分程序如下,我用keil仿真器单步执行的时候到  【 p1=strstr(Sbuf_rec,ON);  //检查短信中是否有on字符】这一步就进行不下去了,我觉得是因为查找特定字符串这里出了问题,希望高手可以解答一下,万分感谢!!!

#include <reg52.h>                        
#include <stdio.h>            
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uchar code ANSWER1[]="On,DL:40mA,DY:5V";  //模拟短信回复内容1
uchar code ANSWER2[]="OFF";      //模拟短信回复内容2
uchar code ANSWER3[]="ON";      //模拟短信回复内容3
uchar code ON[]="on";       //设置短信内容特殊字符串“on”
uchar code OFF[]="off";       //设置短信内容特殊字符串“off”
uchar code ASK[]="ask";       //设置短信内容特殊字符串“ask”
uchar Sbuf_rec[80];                       //存放接收的字符串
/********************************************************************************************
* 函数名称*strstr(char *str,char *sub_str)
* 功    能:查找字符串函数
********************************************************************************************/
char *strstr(char *str,char *sub_str)
{
        int i=0,j=0;
        while(str[i]!=''&&sub_str[j]!='')
  {
                if(str[i]==sub_str[j])
    {
                        i++;
                        j++;
                }
                else
    {
                        i=i-j+1;
                        j=0;
                }
        }
        if(sub_str[j]=='')
                return (char *)(str+i-j);
        return NULL;
}  
void main (void)
{
uchar *p1,*p2,*p3;
INIT();//初始化串口程序
  while (1)
{
  MC52i_read();    //读短信程序
   p1=strstr(Sbuf_rec,ON);  //检查短信中是否有on字符
    if(p1!=NULL)
     {
        //  符合该条件时执行对应程序
     }
    p2=strstr(Sbuf_rec,OFF);//检查短信中是否有off字符
    if(p2!=NULL)
     {
      //  符合该条件时执行对应程序
     }
    p3=strstr(Sbuf_rec,ASK); //查询工作状态
    if(p3!=NULL)
     {
      //  符合该条件时执行对应程序
     }
  
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。