dream come true!(4) strstr
there are many implentations
char?*strstr(const?char?*str,const?char?*sub)

{
??if(str?==?null?||?sub?==?null)
????return?null;
??const?char?*p?=?str;
??const?char?*q?=?sub;
??while(*str?!=?'\0'?&&?*sub?!=?'\0')
??
{
?????if(*str++?!=?*sub++)
??????
{
??????????str?=?++p;
??????????sub?=?q;
????????}
???}
??if(*sub?==?'\0')
????return?p;
??else
????return?null;
}
char?*strstr(const?char?*str,const?char?*sub)

{
??if(str?==?null?||?sub?==?null)
????return?null;
??const?char?*p?=?str;
??const?char?*q?=?sub;
??for(;*str?!=?'\0'?;str++)
??
{
????if(*str?!=?*sub)
??????continue;
????p?=?str;
????while(1)
????
{
????????if(*sub?==?'\0')
???????????return?str;
????????if(*p++?!=?*sub++)
???????????break;
?????????
??????}?
?????sub?=?q;
}