【C/C++】模拟实现strlen

学习目标:

  • 使用代码模拟实现strlen

逻辑:

  • strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。
  • strlen 需要计算字符串数组有多少个元素。

代码1:使用计数器

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int strlen_mine(char * pc)
{int count = 0;for (int i = 0; pc[i] != '\0'; i++){count++;}return count;
}int main(){char str[6] = "ALICE";int ret = strlen_mine(str);printf("%d", ret);return 0;
}


 代码2:使用递归

int strlen_mine2(char* pc)
{if (*pc == '\0'){return 0;}else{return (strlen_mine2(pc + 1) + 1);}
}int main(){char str[6] = "ALICE";int ret = strlen_mine2(str);printf("%d", ret);return 0;
}


 代码3:使用指针 - 指针

int strlen_mine3(char* pc)
{assert(pc);char* p = pc;while(*p != '\0'){p++;}return (p - pc);
}int main(){char str[6] = "ALICE";int ret = strlen_mine3(str);printf("%d", ret);return 0;
}

        这里一共提供了三种思路供大家参考。


相关链接:

        【C/C++】函数的递归-CSDN博客

         C语言指针的介绍-CSDN博客


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model: A Survey

论文标题&#xff1a;Towards Vision-Language Geo-Foundation Model: A Survey 作者&#xff1a;Yue Zhou, Litong Feng, Yiping Ke, Xue Jiang, Junchi Yan, Xue Yang, Wayne Zhang 期刊&#xff1a;未提供 DOI&#xff1a;https://arxiv.org/abs/2406.09385 email&#x…

Spring JdbcTemplate详解

文章目录 Spring JdbcTemplate详解一、引言二、配置JdbcTemplate1、引入依赖2、配置数据库连接池3、配置JdbcTemplate 三、使用JdbcTemplate操作数据库1、添加数据2、查询数据查询某个值根据条件查询返回某个对象查询对象集合 四、总结 Spring JdbcTemplate详解 一、引言 在J…

【GO学习笔记 go基础】访问控制

Go 没有显式的 private、public 关键字&#xff0c;通过首字母大小写进行访问控制标识。在 Go 中&#xff0c;名称首字母大写表示这个名称&#xff08;变量、函数、结构体等&#xff09;是 导出的&#xff0c;可以在包外部被访问和使用。 1. 导出函数 package examplefunc Set…

【单片机】深入剖析USART与UART的区别

在嵌入式系统和微控制器开发中&#xff0c;串行通信是一个非常关键的概念&#xff0c;涉及到不同设备之间的数据传输。常见的串行通信协议包括UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;和USART&#xff08;Universal Synchronous/Asynchronous…

LC:贪心题解

文章目录 376. 摆动序列 376. 摆动序列 题目链接&#xff1a;https://leetcode.cn/problems/wiggle-subsequence/description/ 这个题目自己首先想到的是动态规划解题&#xff0c;贪心解法真的非常妙&#xff0c;参考下面题解&#xff1a;https://leetcode.cn/problems/wiggle…

淘宝商品评价API的获取与应用

在当今数字化时代&#xff0c;电商平台如淘宝已成为消费者购物的重要渠道。对于商家和开发者而言&#xff0c;如何高效地获取并利用商品评价数据&#xff0c;成为了提升产品竞争力和优化用户体验的关键。本文将详细介绍如何使用淘宝开放平台提供的商品评论API来获取这些宝贵的数…

Android 9.0 修改WLAN热点名称为MAC地址后四位

这个需求主要是读取mac地址,mac地址一般是用写号工具写入到NVRAM,所以需要从NVRAM读取准确的地址。 导入nvram操作用到的库&#xff1a; frameworks/opt/net/wifi/service/Android.mk LOCAL_STATIC_JAVA_LIBRARIES : \vendor.mediatek.hardware.nvram-V1.0-java读取wifi mac…

类和对象(中)—— 类的六个默认成员函数

目录 1.类中的默认成员函数 2.构造函数 为什么要有构造函数 什么是构造函数 构造函数做了什么 默认生成的构造函数功能的分析 C11的补救 什么时候自己写构造函数 3.析构函数 为什么要有析构函数 什么是析构函数 析构函数做了什么 默认生成的析构函数功能的分析 什…

Java Executor ScheduledExecutorService 源码

前言 相关系列 《Java & Executor & 目录》《Java & Executor & ScheduledExecutorService & 源码》《Java & Executor & ScheduledExecutorService & 总结》《Java & Executor & ScheduledExecutorService & 问题》 涉及内容 …

数据结构,问题 C: 后缀表达式

题目描述 所谓后缀表达式是指这样的一个表达式&#xff1a;式中不再引用括号&#xff0c;运算符号放在两个运算对象之后&#xff0c;所有计算按运算符号出现的顺序&#xff0c;严格地由左而右新进行&#xff08;不用考虑运算符的优先级&#xff09;。 如&#xff1a;3*(5–2)7对…

[C++]C++知识点总结(Xmind思维导图)

目录 一、C入门基础 二、类和对象 三、C/C内存管理 四、模板 五、C的IO流 六、继承 七、多态 八、C11 九、智能指针 十、类型转换 由于C知识体系过于庞大&#xff0c;分为下面几个部分列出逻辑图&#xff08;有些不完整&#xff0c;后续更新中...&#xff09; 一、C入…

字符串、字节流与十六进制字符串的转换:Python、C 和 Go 的实现对比20241029

字符串、字节流与十六进制字符串的转换&#xff1a;Python、C 和 Go 的实现对比 引言 在数据处理过程中&#xff0c;字符串、字节流和十六进制字符串之间的转换至关重要。这些转换在网络传输、文件存储和数据处理等场景中具有广泛的应用。本文将通过 Python、C 和 Go 三种语言…

Elasticsearch分词器基础安装

简介 Elasticsearch (ES) 是一个基于 Lucene 的搜索引擎&#xff0c;分词器是其核心组件之一&#xff0c;负责对文本数据进行分析和处理。 1. 文本分析 分词器将输入的文本拆分成一个个单独的词&#xff08;tokens&#xff09;&#xff0c;以便后续的索引和搜索。例如&#x…

Vue 3:解析

写在前面 Vue 3 是流行的 JavaScript 框架 Vue.js 的最新主要版本。它带来了显著的改进和新功能&#xff0c;增强了开发者体验并使构建复杂应用程序变得更容易。在本文中&#xff0c;我们将深入探讨 Vue 3 中的关键变化和新增功能。 安装 要开始使用 Vue 3&#xff0c;可以通…

五、Go语言快速入门值条件控制

&#x1f4c5; 2024年4月28日 &#x1f4e6; 使用版本为1.21.5 条件判断和循环判断 If/switch条件判断 ⭐️ 和其他语言一样拥有if else if else和switch语句 1️⃣ if else if else func main() {score : 90var ans stringif score > 0 && score < 60 {an…

EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于opencv答题卡识别判卷】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【G…

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…

影刀RPA自动化按钮参数详解

文章目录 一、基础识别参数1. 文本内容&#xff08;Text&#xff09;2. ID属性3. Name属性4. Class属性 二、高级定位参数1. XPath路径2. CSS选择器3. 图像识别 三、动态等待参数1. 等待超时2. 重试间隔 四、操作参数1. 点击类型2. 点击位置 五、最佳实践1. 按钮定位优先级2. 常…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…

C++(类继承、虚函数、多重继承)

类继承 &#xff08;1&#xff09;当创建一个类时&#xff0c;不需要重新编写新的成员变量和成员函数&#xff0c;只需要新建的类继承了一个已有的类的成员。已有的类称为基类或父类&#xff0c;新建的类称为派生类或子类。 &#xff08;2&#xff09;一个类可以有多个…