博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归和非递归分别实现strlen
阅读量:6171 次
发布时间:2019-06-21

本文共 810 字,大约阅读时间需要 2 分钟。

思路:strlren主要是字符串是以'\0'为结尾标识来计算字符串的长度,所以要实现自己去写strlen也要从这方面下手。

非递归思想:应用循环的思路,以'\0'为循环结束的标识,每循环一次计数加一。

注意:char str [ ] 种类字符串数组作为参数传入函数时会被隐式转换为指针。

 

1 //非递归: 2 #include 
3 int Strlen(char* str) 4 { 5 int i = 0; 6 while (*str != '\0') 7 { 8 ++str; 9 ++i;10 }11 return i;12 }13 14 int main()15 {16 char str[] = "abcdefghh";17 printf("%d\n", Strlen(str));18 return 0;19 }

递归思想:每调运一次函数就加一,最后还是以'\0'为结束标志。

1 //递归: 2 #include
3 int Strlen(char* str) 4 { 5 if (*str == '\0') 6 { 7 return 0; 8 } 9 else10 {11 return 1 + Strlen(++str);12 }13 }14 15 int main()16 {17 char str[] = "abcdefg";18 printf("%d\n",Strlen(str));19 return 0;20 }

 

转载于:https://www.cnblogs.com/cuckoo-/p/10344282.html

你可能感兴趣的文章
爬虫的小技巧之–如何寻找爬虫入口
查看>>
JVM学习(二)垃圾收集器
查看>>
为hexo博客添加基于gitment评论功能
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
Flutter - Drawer 抽屉视图与自定义header
查看>>
ERP系统的优势_库存管理软件开发
查看>>
如何内行地评价公链(一)从真正的不可能三角谈起
查看>>
BigDecimal 详解
查看>>
Shell实战之函数的高级用法
查看>>
NASA制做模拟系外行星环境 发现了热木星大气不透明的原因
查看>>
Slog67_后端框架Skynet之Makefile解读
查看>>
iOS ShareSDK桥接技术
查看>>
BAT面试须知:Java开发的招聘标准
查看>>
WeUI for 小程序–使用教程
查看>>
[vuex] unknown action type
查看>>
深入浅出 Java 并发编程 (1)
查看>>
【神器】可视化创建骨架屏
查看>>
数组左边减去右边数值的最大差值
查看>>
SVN用法
查看>>
js中的promise和then
查看>>