C语言---------strlen的使用和模拟实现

字符串是以'\0'作为结束标志,strlen函数的返回值是'\0'前面的字符串的个数(不包括'\0')

注意

1,参数指向的字符串必须以'\0'结束

2,函数的返回值必须以size_t,是无符号的

使用代码

cpp 复制代码
​
#include<stdio.h>
#include<string.h>
int main()
{
	char arr[] = "abcdef";
	int a = strlen(arr);
	printf("%d", a);
	return 0;
}

​

结果运行

strlen模拟实现

方法1

cpp 复制代码
int my_strlen(const char * str)
{
 int count = 0;
 assert(str);
 while(*str)
 {
 count++;
 str++;
 }
 return count;
}
 

方法2

cpp 复制代码
int my_strlen(const char * str)
{
 assert(str);
 if(*str == '\0')
 return 0;
 else
 return 1+my_strlen(str+1);
}

方法3

cpp 复制代码
int my_strlen(char *s)
{
 assert(str);
 char *p = s;
 while(*p != '\0' )
 p++;
 return p-s;
}

整体代码

cpp 复制代码
#include<stdio.h>
#include<assert.h>
int my_strlen(char* arr)
{
	assert(arr);
	char* p = arr;
	while (*p!= '\0')
		p++;
	return p - arr;
}

int main()
{
	char arr[] = "abcdef";
	int a = my_strlen(arr);
	printf("%d", a);
	return 0;
}
相关推荐
YGGP3 分钟前
吃透 Golang 基础:数据结构之 Map
开发语言·数据结构·golang
~plus~5 分钟前
Harmony核心:动态方法修补与.NET游戏Mod开发
开发语言·jvm·经验分享·后端·程序人生·c#
步、步、为营12 分钟前
.NET 事件模式举例介绍
java·开发语言·.net
~plus~15 分钟前
WPF八大法则:告别模态窗口卡顿
开发语言·经验分享·后端·程序人生·c#
march of Time25 分钟前
go工具库:hertz api框架 hertz client的使用
开发语言·golang·iphone
24K纯学渣1 小时前
Python编码格式化之PEP8编码规范
开发语言·ide·python·pycharm
怒视天下1 小时前
零基础玩转Python生物信息学:数据分析与算法实现
开发语言·python
GISer_Jing1 小时前
Three.js中AR实现详解并详细介绍基于图像标记模式AR生成的详细步骤
开发语言·javascript·ar
委婉待续1 小时前
Qt的学习(一)
开发语言·qt·学习
笨笨马甲1 小时前
Qt Quick Layout功能及架构
开发语言·qt