指引网

当前位置: 主页 > 编程开发 > C >

strstr() 的两个实现

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:01
[摘要] 

anthenticate 测量基

今天看到 strstr() 的两个实现。两相对比,感觉真是有意思。

实现一

http://lynx.isc.org/lynx2.8.5/lynx2-8-5/src/strstr.c

这个程序的风格、算法、技巧都中规中矩,简洁、明了,感觉就是典型的 C 程序。和下一个程序相比,我绝对更喜欢这个。

/* Written by Philippe De Muyter <phdm@macqel.be>.  */
char * strstr (buf, sub)
register char *buf;
register char *sub;
{
register char *bp;
register char *sp;

if (!*sub)
return buf;
while (*buf)
{
bp = buf;
sp = sub;
do {
if (!*sp)
return buf;
} while (*bp++ == *sp++);
buf += 1;
}
return 0;
}

实现二

glibc 的源码 (glibc-2.5/string/strstr.c)

------分隔线----------------------------