天天看点

【C语言】三种方法实现strlen函数

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

int my_strlen1(const char *str)//指针相减
{
	assert(str);
	const char *ptr = str;
	while (*ptr++ != '\0')
	{
		;
	}
	return ptr - str - 1;
}
int my_strlen2(const char *str)//递归
{
	assert(str);
	while (*str != '\0')
	{
		return 1 + (strlen(str + 1));
	}
}
int my_strlen3(const char *str)//计数器
{
	assert(str);
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char *str = "abcdefd";
	printf("%d\n", my_strlen1(str));
	printf("%d\n", my_strlen2(str));
	printf("%d\n", my_strlen3(str));
	system("pause");
	return 0;
}
           
【C语言】三种方法实现strlen函数
【C语言】三种方法实现strlen函数

继续阅读