1.用递归方法求字符串长度
 
算法思想: 1.首先判断字符串首元素是否为"\0". 2.若不是的,则继续调用my_strlen函数继续判断下一位元素是否为"\0", 计数器进行累加。
 
#include<stdio.h>
int my_strlen(char *p
)  
{
	if(*p 
!='\0')   
	{
		return 1+my_strlen(p
+1);   
	}
	else
		return 0;   
}
int main()
{
	char a
[ ]="abcdefgh";
	printf("%d\n",my_strlen(a
));
	return 0;
}
 
2.用非递归方法求字符串长度
 
#include<stdio.h>
int my_strlen(char *p
)
{
	int i
=0;
    while(*p 
!='\0')
	{
		p
++;
         i
++;
	}
	return i
;
}
int main()
{
	int ret
=0;
	char arr
[ ]="abcdef";
	ret
=my_strlen(arr
);
	printf("%d\n",ret
);
	return 0;
}
 
3.【总结】:
 
1.个人看来两种方法比较而言非递归的方式简单易懂。而递归的思想是值得学习的,通过不断调用同一个函数以达到求解的目的,感觉特别低调而且有内涵。 2.就两个程序来说都是通过指针的特点达到传参的目的最为重要,如果掌握了指针的用法在以后的编程学习中作用会特别的大,会大大减小工作量。