模拟实现strrstr
2016-05-02 22:59
288 查看
对于前面strrchr函数的思考,
我想应该也存在strrstr这个函数的吧,可惜在msdn没找到!
假设存在这样一个函数strrstr()
原型:char *strrstr(char const *dst, char const *str);
功能:找出字符串str在dst字符串中最后一次出现的位置(不包括\0)
返回值:返回该位置的指针,如找不到,返回空指针
实现代码如下:
测试函数:
晚安
,C
我想应该也存在strrstr这个函数的吧,可惜在msdn没找到!
假设存在这样一个函数strrstr()
原型:char *strrstr(char const *dst, char const *str);
功能:找出字符串str在dst字符串中最后一次出现的位置(不包括\0)
返回值:返回该位置的指针,如找不到,返回空指针
实现代码如下:
char *Strrstr(char const * arr, char const str[]) { char const *last = NULL; char const *start = arr; int len = strlen(str); int j = 0; assert(arr); assert(str); while (*str == 0) { return 0; } while (*arr && *str) { start = arr; while ((*arr == str[j]) && (*arr) && (str[j])) { //last = arr-len+1; arr++; j++; } if (str[j] == '\0') { last = start; } arr = start + 1; j = 0; } if (*arr == '\0') { return last; } else return NULL; }
测试函数:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<windows.h> #include<assert.h> int main() { char arr[] = "acddefdefgh"; char str[] = "def"; printf("%s\n", Strrstr(arr, str)); system("pause"); return 0; }
晚安
,C
相关文章推荐
- java设计模式(工厂模式)
- freemarker 用template快速构造XML
- 解决tomcat中图片上传丢失问题
- kali2.0中dradis的使用方法
- Android_UI:Fragment
- fastJson
- 解决setInterval计时器不准的问题
- BFS - 八方向迷宫问题
- 关于流(io)
- ubuntu14.04安装cuda7.5+cudnn+caffe
- 实验7 BindService模拟通信
- php面试题2016-5-1
- fzu 2231 平行四边形数
- 强大的U盘启动盘制作工具Rufus
- JAVA语言之基数排序
- OpenAuth.net
- MATLAB与C/C++混合编程之MATLAB调用C程序
- String abc=null;String abc="";String abc;三种写法有什么区别?
- [算法导论] 快速排序
- JDBC笔记-Transaction