模拟实现strstr
模拟实现strstr:
在系统库函数中,存在strstr函数,它用于查找子字符串。它的函数原型为:
char *strstr( const char *string, const char *strCharSet );
这个函数中是要从*string中查找*strCharSet子字符串。因为只是查找,这两个字符串都不用发生改变,所以将他们声明为常量字符串。
模拟实现strstr:
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(const char *str1, const char *str2)//模拟实现strstr函数
{assert(str1);assert(str2);char *p1 = NULL;char *p2 = NULL;char *ptr = str1;while (*ptr){p1 = ptr;p2 = str2;while (*p1 == *p2){p1++;p2++;if (*p2 == '\0'){return ptr;//此时ptr的首地址就是要查找的子字符串在的位置}}ptr++;//上面没找到,使ptr指向下一个位置继续寻找}return NULL;
}
int main()
{char arr[20] = "abcdef";char *p = "def";char *ch = my_strstr(arr, p);//查找字符串函数if (ch != NULL){printf("%p\n", ch);//找到并输出找到的字符串的地址printf("%s\n", ch);//输出字符串}else{printf("not exist\n");//没找到}system("pause");return 0;
}
转载于:https://blog.51cto.com/jiazhenzhen/1716818
模拟实现strstr相关推荐
- 【c语言】模拟库函数strstr
// 模拟库函数strstr#include <stdio.h> #include <assert.h>const char* my_strstr(const char *pa ...
- C语言 strstr函数的用法及模拟实现strstr函数
C语言 strstr函数的用法及模拟实现strstr函数 一.strstr函数的用法 二.模拟实现strstr函数的功能 一.strstr函数的用法 1.strstr函数原型:char* strstr ...
- c语言strstr的使用及模拟实现strstr函数
函数原型 const char * strstr ( const char * str1, const char * str2 ); 需要的头文件string.h 从原型可以看出它的返回值为const ...
- 模拟实现strstr函数,通俗易懂!!!
函数介绍 函数声明 函数声明:char *strstr(const char *str1, const char *str2) 头 文 件:#include <string.h> 返 ...
- 【C语言】 strstr查找子字符串函数以及模拟实现讲解
strstr 字符串查找函数 返回的是相同子串的第一个出现的的地址 返回类型是 char* 返回的是相同子串的第一个出现的的地址 参数是 const char* str1 ,const cha ...
- (C语言)模拟实现库函数strstr()
目录 前言 实现原理: 前言 库函数strstr():const char* strstr(const char* str1,const char* str2);strstr()求字符 ...
- strlen strstr strtok strerror 函数解析及模拟实现
文章目录 一.strlen 求字符串长度 1.函数介绍 2.模拟实现(三种方式) 二.strstr 字符串查找 1.函数介绍 2.模拟实现 三.strtok 字符串分割 四.strerror perr ...
- 学习模拟实现strlen strcmp strcpy strcat strstr等库函数
文章目录 前言 strlen 使用方法与注意事项 模拟实现 strcmp 使用方法与注意事项 模拟实现 strcpy 使用方法与注意事项 模拟实现 strcat 使用方法与注意事项 模拟实现 strs ...
- 字符函数、字符串函数、内存函数用法及其模拟实现
目录 1.strlen strlen的模拟实现 2.strcpy strcpy模拟实现 3.strcat - 字符串追加 模拟实现strcat 4.strcmp - 比较字符串 模拟实现stcmp 5 ...
最新文章
- 推荐10个小众简约,但是实用的软件和网站
- session登录练习使用解决null显示问题
- 图解HTTP学习记录(六)
- 反走样和OpenGL多重采样
- 推荐一个可交互的 Attention 可视化工具!我的Transformer可解释性有救啦?
- 给面试官讲明白:一致性Hash的原理和实践
- Bootstrap 如何使用字体图标
- kelvin模型蠕变方程_第二章:黏弹性与波传播——2.4 力学模型和波传播
- python numpy 数组元素周围_Python numpy数组元素属性及访问
- “万物互联”的时代来了!鸿蒙系统OS 2.0重磅发布:“朋友圈”逐渐扩大
- python画图代码大全-python 画图示例源码(Turtle Graphics)
- 架构之美第八章-软件架构的含义
- 最全,176个HFSS仿真实例模型文件分享
- signature=506ccff074d130c2e8d4e3268d3b44f1,Secure proxy signature schemes from the Weil pairing
- AI+MR遇冷后回暖,国内公司抢先卡位仍有风险待解
- elementUI el-upload传额外的参数
- 【Android】Android Window
- 毕设 疲劳驾驶检测系统 python
- 为什么需要内网穿透技术?
- 应用层 万维网WWW