第一种:计数器方法,一开始写的时候,我是最喜欢用这种方法写的,但随着后来的知识面的扩充,感觉这种方法不是很简便。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <assert.h> int my_strlen(const char *str) { int count = 0; assert(str != NULL); while (*str != '') { count++; str++; } return count; } int main() { int ret = 0; char arr[] = "abcdef"; ret = my_strlen(arr); printf("%dn", ret); system("pause"); return 0; }
第二种:不能创建临时变量计数器,使用递归方式。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15int my_strlen(const char *src) { //a bcdef if (*src == '') return 0; else return 1 + my_strlen(src + 1);//src + 1相当于src++ } int main() { char *p = "abcdef"; my_strlen(p); system("pause"); return 0; }
第三种:使用指针-指针的方法,指针-指针得到的是元素个数
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19int my_strlen(const char* str) { char *p = str; assert(str != NULL); while (*p != '') { p++; } return p - str; } int main() { int ret = 0; char arr[] = "1234abcdef"; ret = my_strlen(arr); printf("%dn", ret); system("pause"); return 0; }
最后
以上就是腼腆饼干最近收集整理的关于C语言-----模拟实现strlen函数的三种方法的全部内容,更多相关C语言-----模拟实现strlen函数内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复