递归:
#include "stdio.h"
int my_strlen(char *n)//因为这里传递的是数组首元素,所以要用*n
{
if(*n!='\0')
return 1+my_strlen(n+1);
}
int main()
{
char n[]="abcd";
my_strlen(n);
printf("%d",my_strlen(n));
return 0;
}
非递归:
#include "stdio.h"
int my_strlen(char *n)
{
int count=0;
while((*n)!='\0')
{
count++;
n++;
}
return count;
}
int main()
{
char n[]="abcd";
my_strlen(n);
printf("%d",my_strlen(n));
return 0;
}
运行结果: