strlen函数使用与模拟实现【进阶版】

news/2024/12/22 9:26:20/

strlen函数使用与模拟实现

1.strlen函数介绍

资源来源于cplusplus网站
在这里插入图片描述

翻译过来的大致意思就是:

获取字符串长度

2.strlen的使用

int main()
{
//strlen - 求字符串长度的
//字符串的结束标志是\0
//strlen统计的是\0之前出现的字符的个数
//基本功能
char arr[] = "abcdef";
//a b c d e f \0
size_t len = strlen(arr);
printf("%zd\n", len);//1. strlen函数要正确获得字符串长度的话,字符串中必须得有\0
/*char arr[] = { 'a', 'b', 'c' , '\0'};
size_t len = strlen(arr);
printf("%zd\n", len);*///2. 要注意strlen的返回值类型是size_tif (strlen("abc") - strlen("abcdef") > 0)printf(">\n");
elseprintf("<=\n");return 0;
}

3.strlen模拟实现

方法1.指数+整数

解引用

size_t my_strlen(const char*str)
{size_t count = 0;while (*str != 0){*str++;count++;}return count;}

方法2.指针-指针 —> 地址-地址

得到的是指针与指针之间的元素个数

size_t my_strlen(const char* str)
{const char* start = str;while (*str != '\0'){str++;}return str - start;
}

方法3.递归实现

递归的思想:大事化小
my_strlen("abcdef")
1+my_strlen("bcdef")
1+1+my_strlen("cdef")
1+1+1+my_strlen("def")
1+1+1+1+my_strlen("ef")
1+1+1+1+1+my_strlen("f")
1+1+1+1+1+1+my_strlen("")
1+1+1+1+1+1+0 = 6
size_t my_strlen(char* str)
{if (*str != '\0')return 1 + my_strlen(str + 1);elsereturn 0;
}

http://www.ppmy.cn/news/1099332.html

相关文章

深度学习实战51-基于Stable Diffusion模型的图像生成原理详解与项目实战

大家好,我是微学AI,今天给大家介绍一下深度学习实战51-基于Stable Diffusion模型的图像生成原理详解与项目实战。大家知道现在各个平台发的漂亮小姐姐,漂亮的图片是怎么生成的吗?这些生成的底层原理就是用到了Stable Diffusion模型。Stable Diffusion是一种基于深度学习的图…

Java自学网站推荐--全网最靠谱

原文网址&#xff1a;Java自学网站推荐--全网最靠谱_IT利刃出鞘的博客-CSDN博客 简介 网上有各种Java学习网站&#xff0c;本文推荐的这个Java网站全网最靠谱&#xff0c;质量远超其他所有网站。 这个网站是&#xff1a;自学精灵&#xff0c;这是全网最强的Java学习网站&…

基于SSM的家居商城系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

apache-activemq-5.17.1一键安装安装

下载 安装 双击InstallService.bat脚本 查看是否安装完成

请求高级封装es7 async await语法支持

async异步 await等待 /*** Copyright (c) 2014-present, Facebook, Inc.** This source code is licensed under the MIT license found in the* LICENSE file in the root directory of this source tree.*/var regeneratorRuntime = (function (exports) {"use strict&…

数据驱动的数字营销与消费者运营

引言&#xff1a;基于海洋馆文旅企业在推广宣传中&#xff0c;如何通过指标体系量化分析广告收益对业务带来的收益价值的思考&#xff1f; 第一部分:前链路引流投放的策略与实战 1.1 动态广告的实现: 偶然与必然 动态广告是一种基于实时数据和用户行为的广告形式&#xff0c;它…

Briefings in Bioinformatics2021 | Bert-Protein+:基于Bert的抗菌肽识别

论文标题&#xff1a;A novel antibacterial peptide recognition algorithm based on BERT 论文地址&#xff1a;novel antibacterial peptide recognition algorithm based on BERT | Briefings in Bioinformatics | Oxford Academic 代码&#xff1a;https://github.com/B…

LeetCode141:环形链表

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…