模拟strlen的三种实现方式

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdio.h>

#include<stdlib.h>

#include<assert.h>

 

int my_strlen(const char *p)
{
     int count = 0;
     assert(p!=NULL);
     while (*p)
     {
      count++;
      p++;
     }
     return count;
}//遍历字符串

int my_strlen_2(const char *p)
{
     assert(p!=NULL);
     static int count = 0;
     if (*p != 0)
     {
      count++;
      my_strlen_2(++p);
     }
     return count;
}//递归实现

int my_strlen_3(const char *p)
{
     assert(p!=NULL);
     const char *str = p;
     while (*str++);
      return ((int)str-(int)p-1);
}//地址相减实现

int main()
{
     char str[10] = "abcdefg";
     //int ret = my_strlen(str);
     //int ret = my_strlen_2(str);
     //int ret = my_strlen_3(str);
     printf("%d",ret);
     system("pause");
     return 0;
}

 
 

你可能感兴趣的:(strlen三种实现方式)