重写strstr函数

来源:互联网 发布:淘宝店铺管理erp 编辑:程序博客网 时间:2024/05/06 07:36

重写strstr函数,返回值是首次出现满足字串的地址。

代码相当冗余,感谢各路打手展示自己的代码,让小生学习学习!

#include <stdlib.h>main(){    printf("%d\n",mystrstr("aaabbbc","bc"));    return;}int mystrstr(char *string,char *sub_str){    int start=0,count=0,len=0;    char *tmp;    char *tmp2;    while(*string != '\0')    {        if(*string==*sub_str)        {            memset(&tmp,0x00,sizeof(tmp));            memset(&tmp2,0x00,sizeof(tmp2));            tmp=string;            tmp2=sub_str;            start=count;            len=0;            while(*tmp2 != '\0')            {                if(*tmp2==*tmp)                    len++;                tmp2++;                tmp++;            }            if(len==(int)strlen(sub_str))                return start;        }        count++;        string++;    }    return -1;}


july大神的代码是这样的:

//在字符串中查找指定字符串的第一次出现,不能找到则返回-1      int strstr(char *string, char *substring)      {         if (string == NULL || substring == NULL)                return -1;                  int lenstr = strlen(string);         int lensub = strlen(substring);               if (lenstr < lensub)                return -1;                   int len = lenstr - lensub;      for (int i = 0; i <= len; i++)   //复杂度为O(m*n)         {             for (int j = 0; j < lensub; j++)             {                 if (string[i+j] != substring[j])                     break;             }             if (j == lensub)                 return i + 1;         }         return -1;     } 


原创粉丝点击