strstr的实现

Posted -A7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strstr的实现相关的知识,希望对你有一定的参考价值。

strstr的实现

具体思路

首先,根据strstr函数的实现方法得知函数需要传进去的参数是两个字符串,而且这两个字符串都是不可更改的,这样,我们可以利用const来修饰;而且函数返回的也是一个字符串,那么返回值类型也可以确定,这样,我们可以写出这样一个函数的定义:char* my_strstr(const char* dest,const char* src)。其中,dest指向的是目标字符串,也就是你需要比较的字符串,src指向的是源字符串,也就是用来被比较的字符串。找不到就可以返回一个空指针.

源码实现

// An highlighted block

#include <stdio.h>
#include<assert.h>
char* myStrstr(const char* dest, const char* src) 

	char* start = (char*)dest;//在这里需要强制类型转换成char*
	char* substart = (char*)src;
	char* cp = (char*)dest;//cp就是用来保存首地址的
	assert(dest != NULL);
	assert(src != NULL);
	while (*cp)
	
		start = cp;
		while (*start != '\\0' && *substart != '\\0' && *start == *substart)
		
			start++;
			substart++;
		
		if (*substart == '\\0')
		
			return cp;
		
	
		cp++;//cp++可以得到原起始位置的下一个位置
	
	return NULL;

int main() 
	char a[20] = "accddjj";
	char b[20] = "ccdd";
	printf("%s\\n", myStrstr(a, b));
	return 0;

以上是关于strstr的实现的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 28. Implement strStr()

模拟实现库函数strlen,strcpy,strstr,memmove,memcpy,strcat

[LeetCode] 28. Implement strStr() 实现strStr()函数

28. 实现 strStr()

LeetCode#28 | Implement strStr() 实现strStr()

leetcode 28. Implement strStr() 实现strStr()