strlen函数的模拟实现

来源:互联网 发布:act1.0凯撒贝利亚淘宝 编辑:程序博客网 时间:2024/05/18 04:53
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。 模拟实现strlen有以下三种方法:第一种:创建计数器
 int my_strlen(char *str){    int count = 0;    while(*str)    {        count++;        str++;    }    return count;}

第二种:指针减指针

int my_strlen(char *str){    const char *end = str;    assert(str != NULL);    while(*end != '\0')    {        end++;    }    return end-str;}

第三种:不创建临时变量,使用递归函数

int my_strlen(const char *str){    if( !*str)        return 0;    else        return 1+my_strlen(str+1);}

main函数:

int main(){    char *str = "abcdefgh";    int len = my_strlen(str);    printf("%d\n",len);    return 0;}
原创粉丝点击