【手把手带你刷LeetCode】——18.自定义函数实现strlen()功能(作业)
【摘要】
今天是力扣打卡第18天!
这道题并不是力扣上面的题目,而是一道作业,鹏哥说很重要,我便把它整理成一篇小博文了。
原题:自定义函数实现strlen()功能
先让我们感受一下strlen()函数:
#include<stdio.h>#include<string.h> int main(){ ...
今天是力扣打卡第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天!
加油啦!!
文章来源: bit-runout.blog.csdn.net,作者:安然无虞,版权归原作者所有,如需转载,请联系作者。
原文链接:bit-runout.blog.csdn.net/article/details/121381957
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)