模拟实现库函数strstr 以及模拟实现函数 memcpy
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟实现库函数strstr 以及模拟实现函数 memcpy相关的知识,希望对你有一定的参考价值。
模拟实现strstr,查询目标字符串中是否含有所查的子串,里面的要点是记录目标字符串移动时当前指针的位置,本文中采用cur来记录。#include <stdio.h><br/>#include<assert.h><br/>char* my_strstr(char* p1,char* p2)<br/>{<br/>assert(p1 && p2);<br/>char* cur = p1;<br/>char* s1 = p1;<br/>char* s2 = p2;<br/>if (*s2 == ‘ ‘)<br/>return p1;<br/>while (*cur)<br/>{<br/>s1 = cur;<br/>s2 = p2;<br/>while (*s1 != ‘ ‘ && *s2 != ‘ ‘ && *s1 == *s2)<br/>{<br/>s1++;<br/>s2++;<br/>}<br/>if (*s2 == ‘ ‘)<br/>{<br/>return cur;<br/>}<br/>cur++;<br/>}<br/>return NULL;<br/>}<br/>int main()<br/>{<br/>char arr1[] = "abbcdef";<br/>char arr2[] = "bcd";<br/>char* ret=my_strstr(arr1, arr2);<br/>if (ret == NULL)<br/>printf("找不到子串");<br/>else<br/>printf("是子串");<br/>}
以上是关于模拟实现库函数strstr 以及模拟实现函数 memcpy的主要内容,如果未能解决你的问题,请参考以下文章
字符串库函数及重点函数的模拟实现下篇--- strstr + strtok + strerror
模拟实现部分库函数(strcpy,strcmp,strcat,strstr,memcpy,memmove,memset)