追梦少年_66 发表于 2017-12-14 13:20

用最少的分号实现strstr函数

本帖最后由 追梦少年_66 于 2017-12-14 20:56 编辑

1、用最少的分号实现strstr函数
2、不使用逗号
3、不使用系统的字符串库函数
4、需判断是否为NULL


char * mystrstr4(char *str1, char*str2) {
        if (str1&&str2) {
                char * p2 = str2;
                while (*str1) {
                        while (*p2 && *str1 &&*str1++ == *p2 && *p2++);
                        if (*p2) {
                                return str1 - (p2 - str2);
                        }
                        str1 = str1 - (p2 - str2);
                        p2 = str2;
                }
        }
        return NULL;
}

SeriousSnow 发表于 2017-12-14 15:11

追梦少年_66 发表于 2017-12-14 14:46
8个分号你行不行,兄弟,不行就被说话

char * Mystrstr(const char *str1, const char *str2)
{
       
        char *s;
        if (!*str2)
                return (char *)str1;

        while (*str1)
        {
                s = str2;
                while (*str1 && *s && *str1 == *s)
                {
                        str1++;
                        s++;
                }
                if (!*s)
                        return (char *)str1 - (s - str2);
                str1++;
        }
        return NULL;
}
不用逗号
8个分号

苏紫方璇 发表于 2017-12-14 17:59

代码不是我写的,没验证过,摘自百度百科strstr
char *strstr(const char*s1,const char*s2)
{
    int n;
    if(*s2)
    {
      while(*s1)
      {
            for(n=0;*(s1+n)==*(s2+n);n++)
            {
                if(!*(s2+n+1))
                  return (char*)s1;
            }
            s1++;
      }
      return NULL;
    }
    else
      return (char*)s1;
}

SeriousSnow 发表于 2017-12-14 14:19

我再来怼你一次。你讽刺了我两次。
模式匹配算法。KMP你8个分号我看看。BF你就别来得瑟了。

追梦少年_66 发表于 2017-12-14 14:46

SeriousSnow 发表于 2017-12-14 14:19
我再来怼你一次。你讽刺了我两次。
模式匹配算法。KMP你8个分号我看看。BF你就别来得瑟了。

8个分号你行不行,兄弟,不行就被说话

追梦少年_66 发表于 2017-12-14 14:48

今天下午又写了一次kmp算法,确实是太妙了,给了我很多启发

另类飞翔 发表于 2017-12-14 14:56

这种帖子不是应该在水区吗?
这几天开了两次吾爱就看见两次,没觉得有多炫技的

追梦少年_66 发表于 2017-12-14 14:56

SeriousSnow 发表于 2017-12-14 14:19
我再来怼你一次。你讽刺了我两次。
模式匹配算法。KMP你8个分号我看看。BF你就别来得瑟了。

别说那些没用的废话了,你牛就把你的代码贴出来,不行就别在哪里bb,哥是发帖交流的,没空鸟你

追梦少年_66 发表于 2017-12-14 14:57

另类飞翔 发表于 2017-12-14 14:56
这种帖子不是应该在水区吗?
这几天开了两次吾爱就看见两次,没觉得有多炫技的

兄弟吧代码贴出来,我期待你的表演

追梦少年_66 发表于 2017-12-14 16:12

SeriousSnow 发表于 2017-12-14 15:11
char * Mystrstr(const char *str1, const char *str2)
{
       


不错兄弟,你做到了这道题就是你赢了,说明你基本功很扎实。但是兄弟,我其实可以只要7个分号哟,嘿嘿

heqiu000 发表于 2017-12-14 16:16

谢谢分享
页: [1] 2 3
查看完整版本: 用最少的分号实现strstr函数