C语言经典算法(六)——递归实现字符串长度的两种方法
2018-01-04 09:19
756 查看
今后继续整理算法并写出自己的理解和备注。 C++实现的:递归实现my_strlen
1、 递归实现my_strlen
<1> 题目描述:实现求字符串长度函数my_strlen
<2> 方法一:直接法
<3> 方法二:递归法
源码:
一、 递归实现my_strlen
1、 直接法
2、 递归法
1、 递归实现my_strlen
<1> 题目描述:实现求字符串长度函数my_strlen
<2> 方法一:直接法
<3> 方法二:递归法
源码:
一、 递归实现my_strlen
1、 直接法
#include<iostream> using namespace std; size_t my_strlen(const char *str)//size_t实际上是一个unsigned int; { for(int i=0; *str++!='\0'; ++i); return i; } void main() { char *str = "Hello"; cout<<strlen(str)<<endl; } ///////////////////////////////////////////////// size_t my_strlen(const char *str) { int count = 0; while(*str != '\0')//这样写比较直接,但是为NULL的话会直接报错,所以最好在头文件加<assert.h>,并在函数中加assert(str!=NULL); { count++; str++; } return count; } void main() { char *str = "Hello"; cout<<strlen(str)<<endl; }
2、 递归法
#include<iostream> using namespace std; size_t my_strlen(const char *str) { if(*str == '\0') return 0; else return my_strlen(str+1)+1;//这种方法不使用任何变量和库函数,到结尾\0才结束 } void main() { char *str = "Hello"; cout<<strlen(str)<<endl; }
相关文章推荐
- C语言经典算法(八)——递归实现斐波那契数列的两种方法
- C语言经典算法(七)——递归实现阶乘算法的两种方法
- C语言经典算法(九)——递归实现二分查找的两种方法
- 字符串操作1 - 递归与非递归两种方法求字符串长度
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- C语言经典算法(五)——求位设置的两种方法
- python语言实现阶乘的两种方法---递归和迭代
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- 排列和组合算法的实现方法_C语言经典案例
- 组合(从长度为n的字符串中取m个字符)---java两种实现方法
- C语言经典算法(二)——求最小公倍数的两种方法
- PHP实现字符串翻转功能的方法【递归与循环算法】
- 算法学习-二叉树节点和两种实现方法,递归非递归
- 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
- 在 Java中按字节获得字符串长度的两种方法
- Sql字符串分组Split函数的两种实现方法(转)
- 图的基本算法实现(邻接矩阵与邻接表两种方法)
- Sql字符串分组Split函数的两种实现方法(转)
- C#实现 获取指定字节长度 中英文混合字符串 的方法
- Sql字符串分组Split函数的两种实现方法