实现strlen函数有三种方法:

一、计数器的方法

二、递归的方法

三、指针减指针的方法

下面是三种方法的实现:

计数器的方法:

int my_strlen(const char *str)

{

 assert(str);    //对指向字符串指针的断言

 int count = 0;

 while (*str)

 {

  count++;

  str++;

 }

 return count;

}

递归的方法:

int my_strlen(const char *str)

{

 assert(str);

 if (*str == '\0')

  return 0;

 else

     return 1 + my_strlen(str + 1);

}

指针减指针的方法:

int my_strlen(const char *str)

{

 assert(str);

 const char *p = str;

 while (*p++)

 {

  ;

 }

 return p - str - 1;

 //因为*p==‘\0’时,再自加1,返回时指向'\0'的下一个空间,导致指针相减时多出一个元素,因此再减1才返回字符串的长度。
}