C和指针之字符串实现strrstr函数

来源:互联网 发布:好孩子淘宝店是正品吗 编辑:程序博客网 时间:2024/05/18 22:46

1、问题

 实现strrstr(const char *str, const char *str2)函数,就是从最右边开始,找到第一次出现字符str2,然后返回指向这个字符的指针,找不到返回NULL,str2和str1一个为NULL
返回 NULL



2、思路

我们用2个变量, 先用strstr一个变量找一个保存当前地址,然后再用strstr去遍历,直到遇到NULL为止,另外一个变量保存当前找到的结果,要注意往后找的时候记得指针需要+1





3、代码实现

#include <stdio.h>#include <string.h>char *strrstr(const char *str1, const char *str2){    if (str1 == NULL || str2 == NULL)        return NULL;    char *last = NULL;    char *current = NULL;    //找到第一个    current = strstr(str1, str2);    while (current != NULL)    {        last = current;        current = strstr(current + 1, str2);    }    return last;}int main(){   const char *str1 = "chenyuchengongyuchencaifeng";   const char *str2 = "chen";   char *result = strrstr(str1, str2);   printf("result is %s\n", result);   return 0;}





4、结果

1111deMacBook-Pro:dabian a1111$ vim strrstr.c1111deMacBook-Pro:dabian a1111$ gcc -g strrstr.c -o strrstr1111deMacBook-Pro:dabian a1111$ ./strrstrresult is chencaifeng