瞎捣鼓 发表于 2023-2-10 15:12:06

弱弱的问个问题,C251中没strstr函数

stiring.h中不包含strstr函数,怎么办?

乘风飞扬 发表于 2023-2-10 15:52:54

没有的话可以自己写一个,网上基本上都能找到相关参考资料:

//(1)库中的代码如下:

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) )/*在c语言中指针与指针相减,得到的是元素的个数*/
                        s1++, s2++;

                if (!*s2)
                        return(cp);

                cp++;
      }

      return(NULL);

}

//(2)参考代码:

# include <stdio.h>
char * my_strstr( const char *s1, const char *s2)
{
    int n=0;//在开始比较字符相等时走的步数
    if (*s2)
    {
      while (*s1)
      {
            if (*(s1 + n) == *(s2 + n))
            {
                if (*(s2 + n + 1) == NULL)
                {
                  return (char *)s1;
                }
               n++;
            }
         /* for (n=0; *(s1 + n) == *(s2 + n); n++)
            {

                if (*(s2 + n + 1)==NULL)
                  return (char *)s1;
            }*/
            s1++;    //只要第n次不相等时,就进行s1++,直到满足条件时开始返回执行循环语句
      }
      return NULL;
    }
    else
      return NULL;
}

瞎捣鼓 发表于 2023-2-10 17:49:37

谢谢,已经那样做了

tianxu0829 发表于 2025-2-19 20:29:26

乘风飞扬 发表于 2023-2-10 15:52
没有的话可以自己写一个,网上基本上都能找到相关参考资料:

非常感谢,我今天也遇到了这个问题{:4_197:}
页: [1]
查看完整版本: 弱弱的问个问题,C251中没strstr函数