创建一个函数,实现库函数strstr的功能

★创建一个函数,实现库函数strstr的功能

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(char *src,char *dst)
{
assert(dst);
assert(src);
char *p = src;
char *q = dst;
while ((*dst)&&(*src))
{
if (*src == *dst)        //两指针内容相等时,指针向后移动不断匹配
{
src++;
dst++;
}
else
{
src = ++p;   //指针内容不等时,子串指针跳至首地址,原串返回到此次匹配开始的下一位置
dst = q;
p = src;
}
}
if (*dst == ‘\0‘)    //子串为‘\0‘时,说明匹配完成,返回原串与子串相同的首地址处
{
return p;
}
else
{
return NULL;    //没有匹配项,返回空
}
}
int main()
{
char arr1[] = "abbaac";
char arr2[] = "abba";
char *ret = my_strstr(arr1, arr2);
printf("%s\n",ret);
system("pause");
return 0;
}

时间: 2024-10-25 03:03:27

创建一个函数,实现库函数strstr的功能的相关文章

oracle学习 五 使用存储过程创建一个重置密码为123456的功能(持续更新中)

首先写一个函数是MD5的方法 create FUNCTION GET_MD5 ( p_str in varchar2) RETURN varchar2 IS BEGIN RETURN Utl_Raw.Cast_To_Raw(DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => Upper(P_Str))); END; 然后在存储过程里面调用 create procedure proc_set_md5 as begin update T_USER_INFO se

创建一个C++制作的包含Opencv功能的dll,供C#程序使用

目的:朋友用C#编写了一个软件,先需要一个功能:获取某图片指定位置的颜色. 实现该目的的方法有很多,即为了朋友能够很便捷解决该问题,也为了有助于扩充自己技术广度,所以决定采用标题中的方法来完成. 没有C++编程经验,也没有制作C++版Opencv语法经验,也没有制作dll的经验,整个流程牵涉比较多的技术环节,每个环节需要一个一个测试通过,才能进行后续设计. 由于网上太多零散信息,没有很好的参考资料,大多只能靠自己实践测试,所以从开始,到跨机各种环境测试,整整花了1天半. 现在问题全部解决了,回头

创建一个函数,传入对象,打印指定格式

格式:name=wang&age=18&sex=男 var person = {   name:'wang',   age:18,   sex:'男',  };  function getData(str){   var str='';   for(var i in person){    str += i+'='+person[i] + '&';   };   return str.substring(0,str.length-1);  }  console.log(getDat

如何创建一个基本JQuery的插件

如何创建一个基本的插件 有时您希望在整个代码中提供一些功能.例如,也许你想要一个单一的方法,你可以调用一个jQuery选择,对选择执行一系列的操作.在这种情况下,您可能需要编写一个插件. 链接jQuery如何工作101:jQuery对象方法 在我们编写自己的插件之前,首先要了解一下jQuery如何工作.看看这段代码: 1 $( "a" ).css( "color", "red" ); 这是一些很基础的jQuery代码,但你知道幕后发生了什么吗?无

Exchange 2013 PowerShell创建PowerShell函数

函数是将一些列命令合并到一个可重用的代码块中,然后我们只需要调用这个函数.函数可以被配置为更改或返回一个或多个可以显示在控制台或输出到一个外部文件的对象.你可以将函数的输出传递給一个变量,或其它命令.在这一节中,我们讲学习下如何创建一个PowerShell函数 去创建一个函数,我们需要用到关键字Function,然后紧跟着就是这个函数的名称,然后函数的代码附在大括号{}中.先来看一个示例,这是一个基本的函数,将会在一个列表中显示邮箱的三个属性 function Get-MailboxList {

RxJS入门(7)----创建一个完整的web application

在本章中,使用Rxjs,我们将创建一个典型的web application.我们将转化Dom Object Model(DOM)并且使用node.js中的websocket做c/s的交互. 用户界面部分,我们将使用RxJs-Domlibrary,这同样是Rxjs团队做的库,提供了方便的操作符来处理DOM和浏览器相关的使我们的编码更容易.服务器端:我们将是使用两个建立很好的node库,并用Observable封装他们的一些API到我们的application中. 在这一章之后,你将能使用RxJs创

《Yii2 By Example》第2章:创建一个简单的新闻阅读器

第2章 创建一个简单的新闻阅读器 本章内容包含:创建第一个控制器,用于展示新闻条目列表和详情:学习控制器和视图之间的交互:自定义视图的布局. 本章结构如下: 创建控制器和动作 创建用于展示新闻列表的视图 控制器是如何将数据传送到视图的 例子--创建一个控制器,展示静态新闻条目列表和详情 将常用视图内容分割成多个可复用视图 例子--在视图中进行部分渲染 创建静态页面 在视图和布局之前共享数据 例子--根据URL参数更换布局背景 使用动态模块布局 例子--添加展示广告信息的动态盒 使用多个布局 例子

RxJS入门(8)----创建一个完整的web application

上接(7) Getting Real-Time Updates from Twitter 我们计划的的第二部分是做一个实时的仪表给地震,添加从Twitter相关的地球上正在发生的不同地震报告和信息.为了实现这个,我们需要创建一个小的Node.js程序,它获取tweets相关的地震的流. Setting Up Our Node.js Environment 配置我们的Node.js程序.包括RxJS,我们将会使用两个比较重要的第三方modules使我们的编程会更容易:ws和twit.其他任何相似的

python中一个函数实现读写文件、判断价格正确常用函数

# 写一个函数,有2个功能,能读文件,也能写文件 # 读文件,只需要传文件名 # 写文件,需要传文件名,写入的内容 import json def op_file(file, content=None): if content: with open(file, 'w', encoding='utf-8') as fw: json.dump(content, fw) else: with open(file, encoding='utf-8') as fw: result = json.load(