+ -
当前位置:首页 → 问答吧 → 自编一个查找字符串的问题

自编一个查找字符串的问题

时间:2011-11-29

来源:互联网

编了一个副函数,但不完全,求补充。

int strstr(char *p1, char *p2)
{
  while(*p1 != *p2 && *p2 == '\0')
  p2 ++;
  while(*p1 == *p2 && *p1 == '\0')
  p1 ++, p2 ++;
}

问题是如果p1是abc,p2是ABCababc,这种情况的话没考虑,应该怎样补充呢?

作者: scxjyzh   发布时间: 2011-11-29

char * strstr (const char * str1, const char * str2)
{
  char *cp = (char *) str1;
  char *s1, *s2;

  if ( !*str2 )
  return((char *)str1);

  while (*cp)
  {
  s1 = cp;
  s2 = (char *) str2;

  while ( *s1 && *s2 && !(*s1-*s2) )
  s1++, s2++;

  if (!*s2)
  return(cp);

  cp++;
  }
  return(NULL);
}

作者: mougaidong   发布时间: 2011-11-29

C/C++ code
char * strstr (const char * str1, const char * str2)
{
  char *cp = (char *) str1;
  char *s1, *s2;

  if ( !*str2 )
  return((char *)str1);

  while (*cp)
  {
  s1 = cp;
  s2 = (char *) str2;

  while ( *s1 && *s2 && !(*s1-*s2) )
  s1++, s2++;

  if (!*s2)
  return(cp);

  cp++;
  }
  return(NULL);
}

作者: mougaidong   发布时间: 2011-11-29

那主函数呢?该怎样检测?

作者: scxjyzh   发布时间: 2011-11-29

找strstr的源码看看

作者: IVERS0N   发布时间: 2011-11-29