【手把手带你刷LeetCode】——18.自定义函数实现strlen()功能(作业)

今天是力扣打卡第18天!

这道题并不是力扣上面的题目,而是一道作业,鹏哥说很重要,我便把它整理成一篇小博文了。

原题:自定义函数实现strlen()功能

先让我们感受一下strlen()函数:

#include<stdio.h>
#include<string.h>

int main()
{
	char arr[] = "abcdefghij";
	printf("%d\n", strlen(arr));//输出10
	return 0;
}

strlen()就是求字符串中字符的个数,也就是'\0'之前字符的个数

有三种方法实现,请听我一一介绍:

方法一:

#include<stdio.h>

int my_strlen(char* arr)
{
	int count = 0;
	while (*arr != '\0')
	{
		count++;
		arr++;
	}
	return count;
}

int main()
{
	char arr[] = "abcdefghij";

	int sz = my_strlen(arr);
	printf("%d\n", sz);//输出10
	return 0;
}

方法二:递归法

#include<stdio.h>

int my_strlen(char* arr)
{
	//找边界
	if (*arr == '\0')
	{
		return 0;
	}
	int count = my_strlen(arr + 1);
	count++;
	return count;
}

int main()
{
	char arr[] = "abcdefghij";

	int sz = my_strlen(arr);
	printf("%d\n", sz);//输出10
	return 0;
}

方法三:指针 - 指针

#include<stdio.h>

int my_strlen(char* arr)
{
	char* p = arr;
	while (*p != '\0')
	{
		p++;
	}
	return p - arr;
}
int main()
{
	char arr[] = "abcdefghij";
	int sz = my_strlen(arr);

	printf("%d\n", sz);//输出10
	return 0;
}

 

这里就要补充一个知识点了,指针 - 指针表示的是中间元素的个数,不过有前提哦,前提两个指针指向同一块空间。

结语

今天是力扣打卡第18天!

加油啦!!

 

おすすめ

転載: blog.csdn.net/weixin_57544072/article/details/121381957