模拟实现strrstr

来源:互联网 发布:学校网络直播系统 编辑:程序博客网 时间:2024/05/05 08:18


模拟实现strrstr

#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>char *my_strstr(const char *dest, const char *src)//查找子字符串的函数{char *p = NULL;char *q = (char*)src;assert(dest);assert(src);while(*dest){p = (char*)dest;if(*dest == *src){while(*src && *dest == *src){dest++;src++;}if(*src ==0)return p;else{dest = p;src = q;}}dest++;}return NULL;}char *my_strrstr(const char *dest, const char*src){char *p = NULL;assert(dest);assert(src);while(*dest){if(my_strstr(dest,src))//在原字符串里查找子字符串,如果有就将第一个字符的地址返回来{p = (char*)my_strstr(dest,src);dest=p+1;//使指针指向下一个地址//比如abcdefabcdef中找cde最后一次出现的位置,先找到第一次出现cde的位置,返回//c的地址,然后使dest指向下一个位置,查找下一次出现cde的位置,这样就提高了效率}else//如果没查到有子字符串,就直接返回空return p;}return p;}int main(){//strrstrchar arr1[] = "abababab";char arr2[] = "aba";char *p = my_strrstr(arr1, arr2);if(p)printf("%s\n",p);elseprintf("无此字符串!\n");system("pause");return 0;}


1 0
原创粉丝点击