当前位置: 首页 > news >正文

c语言:模拟strlen(三种方法)最全版本

1.计数的方法

#include <stdio.h>
#include <assert.h>
int my_strlen(const char * str)//const的使用优化
{int count=0;assert(str)while(*str){count++;str++;}return count;
}

2.用指针的方法(指针-指针)

#include <stdio.h>
#include <assert.h>
int my_strlen(char * s )
{assert(s);char* p = s;while (*p != '\0'){p++;}return p - s;
}

 3.不创建临时变量的方法(递归的方法)

#include <stdio.h>
#include <assert.h>
int my_strlen(char *p)
{assert(p);if(*p=='\0')return 0;elsereturn 1+my_strlen(p+1);
}

函数的调用

int main()
{char arr[]="abcdef";size_t len=my_strlen;printf("%zd\n",len);return 0;
}

运行结果:

相关文章:

  • Day03—flask与react实现交互(解决跨域问题)
  • 从容应对亿级QPS访问,Redis还缺少什么?no.29
  • c语言----函数
  • 中间件的概念及示例
  • Android跨进程通信--Binder机制及AIDL是什么?
  • 详解 Cookies 和 WebStorage
  • 软件测试面试题(四)
  • 【经典论文阅读10】MNS采样——召回双塔模型的最佳拍档
  • ffpmeg windows WSl 编译so
  • 【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL
  • leedcode【142】. 环形链表 II——Java解法
  • K8s的常用命令以及yaml文件的创建
  • ABC354学习笔记
  • 基于Arduino IDE的ESP32开发环境搭建
  • PyQt6--Python桌面开发(33.QToolBar工具栏控件)
  • 网络传输文件的问题
  • [NodeJS] 关于Buffer
  • 【5+】跨webview多页面 触发事件(二)
  • ES6简单总结(搭配简单的讲解和小案例)
  • iOS 系统授权开发
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java程序员幽默爆笑锦集
  • JS实现简单的MVC模式开发小游戏
  • maven工程打包jar以及java jar命令的classpath使用
  • npx命令介绍
  • orm2 中文文档 3.1 模型属性
  • text-decoration与color属性
  • Travix是如何部署应用程序到Kubernetes上的
  • windows-nginx-https-本地配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 彻底搞懂浏览器Event-loop
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 硬币翻转问题,区间操作
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​水经微图Web1.5.0版即将上线
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (SpringBoot)第二章:Spring创建和使用
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (三十五)大数据实战——Superset可视化平台搭建
  • (四)React组件、useState、组件样式
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .FileZilla的使用和主动模式被动模式介绍
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 给NuGet包添加Readme
  • .net连接oracle数据库
  • .pyc文件是什么?
  • @Autowired 与@Resource的区别
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [20170713] 无法访问SQL Server