strstr()的实现

#include<iostream>
#include<stdio.h>

int my_strstr(const char *src,const char *des);
int  my_strstr(const char *src,const char *des)
{
     if(NULL == src || NULL == des)
         return -1;

     const char *p_src = NULL;
     const char *p_des = NULL;
     int i = 0 ;

     for(p_src = src; *p_src != '\0';p_src++)
     {
          int flag = 0;
          if(*p_src == *p_src)
          {

              int j ;
              for(p_des = des,j = 0 ;*p_des != '\0';p_des++)
              {
                  if(*p_des == *p_src)
                  {
                      flag = 1;
                      j++;
                      p_src++;
                  }else
                  {   p_src = p_src-j;
                      flag = 0;
                      break;
                  }

              }
              if(flag == 1)
              {
                  printf("find !\n");
                  return i;
              }

          }

         i++;
      }
     printf("not find !\n");
     return -1;

}
int main()
{
    char src[] = "liusenlin";
    char des[] = "sen";

    int psition = 0;
    psition = my_strstr(src,des);
    printf("%d \n",psition);

    char des1[] = "lsl";
    int psition1 = 0;
    psition1 = my_strstr(src,des1);
    printf("%d\n",psition1);
    return 0;
}

运行结果:
find !
3

not find !
-1
Press any key to continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值