strlen是个很简单的函数,就是返回字符串中字符的个数。
开始我是这么写的
int my_strlen(const char * str)
{
int len = 0;
while(*str++ != '\0')
len++;
return len;
}
在网上找了下,毛病挺多,改进如下
size_t my_strlen(const char * str)
{
assert(str != NULL);
size_t len = 0;
while((*str++) != '\0')
len++;
return len;
}
最后翻了翻《C标准库》,标准实现又是另外一种。。
size_t strlen(const char *s)
{
const char *sc;
for (sc = s; *sc != '\0'; ++sc)
;
return sc - s;
}
标准库的这个比较有意思,但不知这样实现的好处是什么。。