const char * stristr(const char * str1, const char * str2) { if ( str1==NULL || str2==NULL || strlen(str1)==0 || strlen(str2)==0 ) return 0; unsigned int l1=strlen(str1); unsigned int l2=strlen(str2); if (l1<l2){ return 0; }else if (l1==l2){ return stricmp(str1,str2)==0?str1:NULL; } const char *c=0; for(unsigned int i=0;i<l1-l2+1;i++) { c=str1+i; for (unsigned int n=0;n<l2;n++) { if ( tolower(str1[i+n])!=tolower(str2[n]) ) { c=0;n=l2; } } if (c) break; } return c; }