判断子串的存在

来源:互联网 发布:研究生 知乎 编辑:程序博客网 时间:2024/06/03 15:59
int search(char *s,char * sub){char *p,*q;p=s;q=sub;while(*p)//该语句是为了让指针一直移动下去{while((*p!=*q)&&*p)//如果首字符不同,则不断往下移动p++;while((*p==*q)&&(*q))//移动到首字符相等的时候,逐个判断{p++;q++;}if(*q=='\0')//说明都匹配,就说明存在这么一个子串return 1;q=sub;//子串的指针移动到首位,为了下一次继续判断if(*p=='\0')//如果判断到最后,还是没有返回1,说明根本不存在这样的子串return 0;}}int main(){char s[100];char sub[100];cout<<"input a string"<<endl;gets(s);cout<<"Input a sub "<<endl;gets(sub);cout<<search(s,sub)<<endl;return 0;}