#include <tchar.h>
TCHAR* _strstr(const TCHAR *s1, const TCHAR *s2)
{
if (*s2 == '\0') /*如果s2为空,则返回s1*/
return ((TCHAR *)s1);
for (; s1 != '\0'; ++s1) /*每次后移s1的位置,在新的位置进行下一次匹配*/
{
const TCHAR *sc1, *sc2;
while((*s1 != *s2)&&(*s1 != '\0'))
++s1; /*在s1中找到和s2第一个字符匹配的位置*/
if (*s1 == '\0') /*如果找不到,说明s1现在的位置不匹配,退出循环进行下一次匹配*/
break;
else /*如果找到和s2第一个字符匹配的位置,开始逐个匹配s2后面的字符*/
for (sc1 = s1, sc2 = s2; sc1 !='\0'; ++sc1,++sc2)
{
if (*sc2 == '\0') /*如果匹配完毕,返回s1此时的位置*/
return ((TCHAR *)s1);
else if (*sc1 != *sc2) /*如果后面有一个字符不匹配,说明s1现在的位置不匹配,退出循环进行下一次匹配*/
break;
}
}
return (NULL) ;
}