本文介绍三种方法:

1.循环计数法,(设置一个计数器)。

2.递归法,(函数调用自身进行计算)

3.指针-指针法,(库函数使用的是此方法)

现在列入程序:

方法1:

/*
计数法
*/
int my_strlen(char *p)
{
	int number = 0;
	while (*p)
	{
		number++;
		p++;
	}
	return number;
}

方法2:

/*
递归法
*/
int my_strlen(char *str1)
{
	if (*str1 != '\0')
	{
		str1++;
		return 1 + my_strlen(str1);
	}
	else
		return 0;
}

方法3:

/*
指针相减法
*/
int my_strlen(char *p)
{
	char *pstart = p;
	while (*p)
		p++;
	return p - pstart;
}

现在给出主函数进行调用以及测试:

int main()
{
	char *str = "asdfg";
	int len = my_strlen(str);
	printf("%d\n",len);
	system("pause");
	return 0;
}

经过验证,结果均为5,计算结果正确!


如果哪位大神发现程序还有待改进的地方,欢迎批评指正!