strstr函数的实现
来源:互联网 发布:条码数据采集系统 编辑:程序博客网 时间:2024/06/04 19:24
要正确写出strstr函数,首先必须清楚地认识到这个函数的功能,这个函数用来在一个字符串中找到目标字符串。下面这段代码是我自己写的,不是特别简练,往后还会完善。
好了,我们来讲讲如何实现这个函数。
首先判断目标字符串是否是空字符串,如果是就返回0,如果不是就先求出目标字符串的长度(判断时要用到),这简单,就等于嵌套了一个strlen函数,下来就是遍历字符串来寻找目标字符串,用for循环,条件是 *(msg + i )== *( str + i ),意思是字符串中的字符相等才能进入循环,循环里嵌套 if 语句 !*(str+i+1),条件是如果遍历的这个字符下一个字符等于0(即下一个字符为‘\0’),就结束返回地址,否则就返回NULL.即没有找到。
char* my_strstr(char* msg, const char* str) //找到一个字符串中目标字符串,返回目标字符串的前一位的地址{const char* end = str;int str_len = 0;int i = 0;while (*end) //求目标字符串的长度{str_len++;end++;}if (str_len == 0) //判断目标字符串是否为空{return 0;}else{while (*msg) //遍历字符串,直至找到目标字符串或遍历完未找到{for (i = 0; *(msg + i) == *(str + i); i++){if (!*(str + i + 1)){return (char*)msg;}}msg++;}return NULL;}}
测试程序
int main(){char msg[] = "123lov4567love890";char msg_part[] = "love";char* ret = my_strstr(msg,msg_part);printf("%p\n",msg+10); //用来检测if (ret == 0){printf("未找到");}else{printf("找到了,%p\n",ret);}return 0;}
0 0
- strstr函数的实现
- strstr 函数的 实现
- strstr函数的实现
- strstr 函数的实现
- strstr函数的实现
- strstr函数的自己实现
- strstr函数的自己实现
- c++ strstr函数的实现
- strstr函数的简单实现
- strstr函数的自己实现
- strstr()函数的实现
- 实现自己的strstr函数
- strstr函数的自己实现
- 【LeetCode】005 Implement strStr() 函数strStr()的功能实现
- 编写实现strstr()函数功能的代码
- 类似strstr/strcpy/strpbrk函数的实现
- strstr和memcmp函数的实现
- C 函数 strstr 的高效实现
- 【51nod】1011 最大公约数GCD - 辗转相除法
- Appium在IOS的应用
- 访问权限控制
- 【Unity Shader】4.Unity Shader基本知识学习(混合 Blending )
- IOS学习(十四)城市级联操作(两个tabview)
- strstr函数的实现
- 数据库中冗余字段的作用
- 第二章-用户需求分析
- 记录一个问题
- C3P0的三种配置方式以及基本配置项详解
- 集合框架---ArrayList中去除重复的方法
- Android 7.0源码编译
- 四层,七层网络模型
- 不可乱用Object类型引用