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() 实现strStr()