c语言实现strlen的几种方法

方法一:

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

int main()
{
    int len = my_strlen("abcdef");//count
    printf("len = %d\n", );//6

    system("pause");
    return 0;
}

方法二:不创建临时变量

int my_strlen(const char* str)
{
    assert(str != NULL);
    if (*str == '\0')
        return 0;
    else
        return 1 + my_strlen(str + 1);
}
int main()
{
    int len = my_strlen("abcdef");
    printf("len = %d\n", len);
    system("pause");
    return 0;
}

方法三:指针相减的方法

int  my_strlen(const char* str)
{
   const char * start = str;
   while (*str != '\0')
   {
       str++;
   }
   return str - start;
}
int main()
{
    int len = my_strlen("abcdef");
    printf("len = %d\n", len);
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zhang_ting0020/article/details/80093584