栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

007-模拟实现求字符串长度strlen【c语言】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

007-模拟实现求字符串长度strlen【c语言】

文章目录
      • 1. 分析
      • 2. 具体实现
      • 文章索引
      • 后记


1. 分析

我们先了解一下strlen函数的作用,strlen函数会根据我们传递的字符数组首地址计算字符串的长度比如:

// 代码1
char str[] = "abcdef";
strlen(str);   // 6

// 代码2
char str[] = "abcdef";
strlen(str);   // 4

// 代码3
char* str = "abcdef"; 
strlen(str); // 6

// 代码4
char str[] = {'a', 'b', 'c'};
strlen(str); // 随机值   

// 代码 5
char str[5] = "abcd"; // 实际存储的是 "abcd"
strlen(str);	// 4

// 代码 6
char str[5] = "abcde";
strlen(str);	// 随机值

大家可以在自己的电脑上将以上代码段运行,看看结果是不是这样的!
【思考】

为什么代码4 和 代码6 计算出来的长度是随机的?
因为字符串是以 为结束符号的,而代码4 和 代码6 都没有 作为结束标志。

其他的关于字符串的知识我这里就不做过多的赘述了,大家可以自行查资料,也可以和我讨论。

通过上面的例子我们知道,字符串是以 作为结束标志的,也就是说,无论你字符串怎么定义,只要我在这段连续的空间中遇到了 ,那么我就认为你的字符串结束了,就比如我们上面的代码2。

下面我们就开始动手写代码吧:

2. 具体实现
#include 
#include 

int my_strlen(char* dest)
{
	// 记录字符串长度
	int len = 0;
	// 循环在遇到  时停止
	while ( *dest != '' )
	{
		// 长度 +1
		len ++;
		// 指针后移一个单位
		dest ++;
	}
	// 返回字符串长度
	return len;
}

测试代码大家自己写就行了

当然,上面的代码还不够好,我们对其进行改进

// version 2
int my_strlen(const char* dest)
{
	assert(dest);
	int len = 0;
	while ( *dest++ ) len ++;
	return len;
}
文章索引

模拟实现字符串拷贝函数 strcpy
数据结构单链表


后记

我水平有限,错误难免,还望各位加以指正。


本文内容到此结束,感谢您的阅读!!!如果内容对你有帮助的话,记得给我三连丫(点赞、收藏、关注)


本人博客所有文章,均为原创。部分文章中或引用相关资料,但均已著明来源出处。可随意转载、分享,但需加本文链接,以及版权说明。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/528916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号