C语言的strlen的模拟实现

strlen是一个库函数,作用是计算字符串的长度
头文件为<string.h>
今天我们来用三种方式实现一下
循环

#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
	size_t count = 0;
	assert(arr);
	while(*arr != '\0')
	{
		arr++;
		count++;
	}
	return count;
}
int main()
{
	char arr[] = { "abcdef" };
	size_t a = my_strlen(arr);
	printf("%zu", a);
	return 0;
}

递归

#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
	assert(arr);
	if (*arr != '\0')
	{
		
		return 1 + my_strlen(arr + 1);
	}
	return 0;
}
int main()
{
	char arr[] = { "abcdefahdwuhdaushdiauw" };
	size_t a = my_strlen(arr);
	printf("%zu", a);
	return 0;
}

指针-指针

#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
	assert(arr);
	const char* a = arr;
	while ( *arr != '\0')
	{
		arr++;
	}
	return arr - a;
}
int main()
{
	char arr[] = { "abcdefahdwuhdaushdiauw" };
	size_t a = my_strlen(arr);
	printf("%zu", a);
	return 0;
}
posted @ 2025-11-19 17:23  好想成为人类啊  阅读(4)  评论(0)    收藏  举报