之所以系统地记下C语言的str系列函数,是因为4月份参加的两次实习生招聘面试是都让在纸上写代码实现(腾讯:strstr函数,华为:strtok函数),当时最后写得虽然没什么大问题,但略感生涩,特别是strtok函数。之前看过 strtok源码剖析 位操作与空间压缩 这篇博客,当时写起来的时候比较生疏,印象不深。真所谓“眼过千遍,不如手过一遍”。点击查看C语言其他一些str系列库函数的实现:C语言str系列库函数
vc++8.0库中的strtok源码阅读起来很容易理解,加上有上个链接的分析,因此不再赘诉。若在纸上写代码,不考虑线程安全,那么我们不妨再做点改动,让这个函数效率更高:
代码如下:
char * __cdecl strtok (
char * string,
const char * control
)
{
unsigned