三种方法实现strlen

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40927789/article/details/81837450

方法1:计数法

int my_strlen(const char *str)
{
    char *p = (char*)str;
    int count = 0;
    while(*p != '\0')
    {
        count++;
        p++;
    }
    return count;
}

方法2:递归法

int my_strlen(const char *str)
{
    char *p = (char*)str;
    if(*p == '\0')
    {
        return 0;
    } 
    return 1+my_strlen(p+1);
}

方法3:指针减指针法
(两个指针指向的必须是同一内存区域,则相减的结果就是两者之间相差的元素个数,否则无意义)

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

猜你喜欢

转载自blog.csdn.net/qq_40927789/article/details/81837450