my_strstr()函数;my_strrstr()函数的实现

来源:互联网 发布:在淘宝上做充值有用吗 编辑:程序博客网 时间:2024/06/13 23:46

my_strstr()函数的功能是:在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针,如果s2没有完整的出现在s1中,则返回NULL;

my_strrstr()函数的功能是:在s1中查找整个s2最后一次出现的起始位置,并返回一个指向该位置的指针,如果s2没有完整的出现在s1中,则返回NULL。

/****************************************  *  File Name  : my_strstr.c  my_strrstr.c*  Creat Data : 2015.3.21 *  Author     : ZY  *****************************************/ #include <stdio.h>char * my_strstr(char const * s1,char const *s2){char *p1,*p2;p1 = s1;p2 = s2;while(*s1 != '\0' && *s2 != '\0'){if(*s1++ != *s2++)//不相等时候,s1和s2自加,后移,而p1则保留在原位置{s2 = p2;//s2重新回到头s1 = ++p1;//从下一个字符开始搜索s2}}if(*s2 == '\0'){return p1;}return NULL;}char *my_strrstr(char const *s1,char const *s2){char *last = NULL;//定义一个字符串指针赋值为空char *cur = my_strstr(s1,s2);//第一个字符串s2while(cur != NULL){last = cur;//存放查找到的第一个字符串s2cur = my_strstr(cur+1,s2);//向后查找直到最后一个}return last;//返回最后一位,如果没有找到就返回NULL}int main(){char arr[] = "12345623";char brr[] = "23";printf("%p\n",my_strstr(arr,brr));printf("%p\n",my_strrstr(arr,brr));return 0;}


0 0