0
点赞
收藏
分享

微信扫一扫

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



今天是力扣打卡第18天!

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


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

原题:自定义函数实现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天!

加油啦!!


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



举报

相关推荐

0 条评论