递归函数用mystrlen(char *buf,int N) 实现统计字符串中的第一个空字符前面的字符串长度
2015-07-30 17:47
459 查看
递归函数用mystrlen(char *buf,int N) 实现统计字符串中的第一个空字符前面的字符串长度
举例 char buf[]={'a','i','c','d','e','f','\0','x','y','z'}; mystrlen(buf,10) mystrlen(buf,20) 的结果为6 mystrlen(buf,3) mystrlen(buf,5) 的结果为3,5
举例 char buf[]={'a','i','c','d','e','f','\0','x','y','z'}; mystrlen(buf,10) mystrlen(buf,20) 的结果为6 mystrlen(buf,3) mystrlen(buf,5) 的结果为3,5
#include<iostream> using namespace std; int mystrlen(char *buf,int N) //实现一 { if(buf[0]==0||N==0) return 0; else if(N==1) return 1; int t=mystrlen(buf,N/2); //折半递归取长度 if(t<N/2) return t; else return (t+mystrlen(buf+N/2,(N+1)/2)); } int mystrlen2(char *buf,int N)//实现2 { static int count=0; if(buf[0]=='\0'||count==N) { return count; } count++; return mystrlen2(buf+1,N);//每次往后移动一位字符串指针来判断 } int main() { char buf[]={'a','i','c','d','e','f','\0','x','y','z'}; int k; k=mystrlen2(buf,5); cout<<k<<endl; system("pause"); return 0; }
相关文章推荐
- 解决PyQt中从文件读取内容输出到界面乱码的问题
- 既然抓不住,何不送一程!(一篇让数万人开悟的文章)
- 无形的力量,看得见的手
- kindeditor编辑器,图片上传功能齐全
- 有意思的代码--利用系统信号切换日志模式
- mysql分表的3种方法
- 多点触摸+摄像机旋转拉伸学习笔记
- java 读取配置文件
- WI-FI定位算法原理与介绍
- Flume NG简介及配置 1.5.2
- 中天华易业务范围
- 4. CSS id 选择器
- Python进阶之返回函数
- 利用栈实现精制转换c++
- SQL Server 加密功能实例
- mysql create index
- php设计模式之适配器模式
- 如果有人问我GET和POST的区别...
- 大众点评的大数据实践-CSDN.NET
- KMP算法