直接上源码,其实是仿照<string.h>库中的源码:
char* strstr(register char* str1, register char* str2)
{
register char* bp;
register char* sp;
if (!*str2)
return str1;
while(*str1)
{
bp = str1;
sp = str2;
do
{
if (!*sp)
return str1;
}while(*bp++ == *sp++);
str1++;
}
return 0;
}
解析:
一个知识点:
这里为什么使用register关键字?
原因是用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。
其他的好像就没有什么好说的。