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 = "chenyu

C和指针之字符串实现strrstr函数相关推荐

  1. 【C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )

    文章目录 一.strcmp 函数 二.指针数组排序 ( 字符串排序 ) 二.完整代码示例 一.strcmp 函数 strcmp 是 String Compare 缩写 , 该函数用于比较两个字符串 ; ...

  2. C语言指针操作(四)通过指针引用字符串

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰. 学习日记 目录 学习日记 前言​编辑 一.字符串的引用方式 例1 例2 二.字符指针作函数参数 用函数调用实现字符串的 ...

  3. python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  4. C 温故知新 之 指针:数组指针、字符串指针、函数指针

    一.数组指针  1.指向数组元素的指针 1.定义:还是那句话通俗的说指针就是地址 数组指针     :数组的起始地址 数组元素指针:数组元素的地址 2.定义一个指向数组元素的指针变量的方法,与之前介绍 ...

  5. C语言:编写函数,通过一个指针将一个字符串反向

    /*编写函数,通过一个指针将一个字符串反向*/ #include<stdio.h>int revert(char *s){char *p=s,c;while(*p)p++;p--;whil ...

  6. 题目:利用指针知识,写一函数,求一个字符串的长度

    题目:利用指针知识,写一函数,求一个字符串的长度 一.需求分析 很明显,就是求出一个字符串中字符的数目. 该函数就是C语言 string.h 库中的strlen()函数 二.思维节点 字符串指针的创建 ...

  7. C语言笔记含源码(变量、输入输出、分支、循环、函数、数组、指针、字符串、结构体)小总结

    文章目录 一.变量与输入输出 二.分支语句 三.循环 四.函数 五.数组 六.指针 七.字符串 八.结构体 一.变量与输入输出 定义变量需要:类型.变量名.变量值(可有可无) #include < ...

  8. 【指针编程】 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标。)插入字符串。插入的位置和内容是从键盘输入

    [问题描述] 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标)插入字符串.插入的位置和内容是从键盘输入 要求:子函数 void InsertStr(char ...

  9. PHP源代码分析-字符串搜索系列函数实现详解

    今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的.于是查找了一下源代码,原来可以简单地用stripos函数查找, stripos ...

最新文章

  1. 运维7年,对Linux的经验总结
  2. 【组合数学】生成函数 ( 使用生成函数求解不定方程解个数 )
  3. MFC 使用datetimepicker获取时间
  4. Active Noise Cancelling-主动噪声消除
  5. 电路保护器件选型指南
  6. 保姆级!!前端必会Taro入门级教学!!
  7. CentOS7安装go开发环境
  8. Oracle存储过程快速入门
  9. python像素处理_用python处理图片实现图像中的像素访问
  10. 修改附图中文字的办法
  11. arduino和python对接_Python:与Arduino进行交互-后续
  12. Symbian编程总结-基础篇-活动对象正解(1)-理解活动对象
  13. zabbix开启网页报警声音方法:网页也可以有报警声音(46)
  14. 「JLOI2015」战争调度
  15. 网站备案必须有服务器吗,域名备案必须有服务器吗
  16. 道教的精神———闻一多
  17. openlayer判断瓦片全部加载完毕
  18. mysql如何查看事务日记_详解 Mysql 事务和Mysql 日志
  19. JavaScript 常见鼠标事件
  20. gmail账号找回_如何找回忘记的Gmail密码

热门文章

  1. 关于 .NET 与 JAVA 在 JIT 编译上的一些差异
  2. 看过这么多爆文,依旧走不好异步编程这条路?​
  3. Ingress-nginx工作原理和实践
  4. 推荐:.Net 5开源免费的内容管理系统
  5. BeetleX框架详解-小结
  6. 动态 Restful API 生成
  7. C#高级技师语法,你会吗?
  8. Asp.Net.Core WebApi 版本控制
  9. .Net Core微服务架构技术栈的那些事
  10. C#桌面开发的未来WebWindow