写了个strstr()函数,为什么不起作用呢,该如何解决

写了个strstr()函数,为什么不起作用呢
自己写了个函数实现strstr函数的功能,可不起作用,大侠能帮忙看看嘛?非常感谢

const char *mystrstr(const char *string,const char *strCharSet)
{
int i=0;
int j=0;
while(string[i]!='\0'&&strCharSet[j]!='\0')
{
if(string[i]==string[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(strCharSet[j]=='\0')
return (string+i-j);
else 
return NULL;
}

int _tmain(int argc, _TCHAR* argv[])
{
const char *test;
test=mystrstr("testone","st");
printf("%s\n",test);
std::cin.get();
std::cin.get();
return 0;
}

strstr函数的功能是从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。

------解决方案--------------------
自己对照对照吧
http://www.opensource.apple.com/source/xnu/xnu-792.13.8/libsa/strstr.c
------解决方案--------------------

const char *mystrstr(const char *string,const char *strCharSet)
{
      while(*string != '\0')  
      {  
          const char *p = string;  
          const char *q = strCharSet;  
          const char *res = NULL;  
          if(*p == *q)  
          {  
                res = p;  
                while(*p && *q && *p++ == *q++)  
                ;  
                  
                if(*q == '\0')  
                      return res;                      
          }  
          string++;  
      }  
      return NULL;  
}



引用:
自己写了个函数实现strstr函数的功能,可不起作用,大侠能帮忙看看嘛?非常感谢

const char *mystrstr(const char *string,const char *strCharSet)
{
int i=0;
int j=0;
while(string[i]!='\0'&&strCharSet[j]!='\0')
{
if(string[i]==string[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(strCharSet[j]=='\0')
return (string+i-j);
else 
return NULL;
}

int _tmain(int argc, _TCHAR* argv[])
{
const char *test;
test=mystrstr("testone","st");
printf("%s\n",test);
std::cin.get();
std::cin.get();
return 0;
}

strstr函数的功能是从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。

------解决方案--------------------
楼主一重循环能实现吗!!

还是好好跟踪下你的程序吧.

下断点, 然后F5执行, 你就知道你的程序错在哪里了.
------解决方案--------------------
为啥都答非所问呢……
string[i] == string[j]
改为:
string[i] == strChrSet[j]
------解决方案--------------------
是strCharSet
用手机写代码真不是人干的……
------解决方案--------------------
支持2楼,这样才不会改变原有数据,高手啊
------解决方案--------------------

//这里是想干啥? 比较?
  if(string[i]==string[j])
        {
            i++;
            j++;
        }
        else
        {
            i=i-j+1;
            j=0;
        }

------解决方案--------------------
if(string[i]==string[j])
        {