问题:

    求一个字符串的三种解法

一、计数的方法

#include<stdio.h>
#include<assert.h>
int my_strlen( char* str)
{
	int count=0;
	while (*str)
	{
		count++;
		str++;
	}
	return count;
}
int main(void)
{
	char *arr = "abcef";
	int ret = my_strlen(arr);
	printf("%d\n", ret);
}

二、指针-指针的方法

#include<stdio.h>
#include<assert.h>
int  my_strlen(const char*str)
{
	assert(srt);
	const char* ret = str;
	while (*ret++)
	{
		;
	}
	return(ret - str-1);
}
	
int main(void)
{

	char *arr = "abcdef";
	 printf("%d\n",my_strlen(arr));	
}

三、用递归的方法

#include<stdio.h>
#include<assert.h>
int my_strlen(char* srt)
{
	assert(srt);
	if (*srt == '\0')
	{
		return 0;
	}
	else
	{    
		srt++;
		return (1 + my_strlen(srt));
		
	}
}
int main(void)
{
	char *arr = "abcdef";
	printf("%d\n", my_strlen(arr));
}