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;
}
相关推荐
by__csdn1 分钟前
JavaScript性能优化实战:异步与延迟加载全方位攻略
开发语言·前端·javascript·vue.js·react.js·typescript·ecmascript
阿里嘎多学长2 分钟前
2025-12-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
良木生香2 分钟前
【数据结构-初阶】详解线性表(2)---单链表
c语言·数据结构·算法
diudiu96287 分钟前
Logback使用指南
java·开发语言·spring boot·后端·spring·logback
程序喵大人9 分钟前
记录va_list重复使用导致的crash
开发语言·c++
2501_9307077811 分钟前
如何使用C#代码将多张图片整合为一个PDF文档
开发语言·pdf·c#
CryptoPP12 分钟前
期货数据获取与可视化全攻略:从API对接至K线图生成
运维·服务器·开发语言·数据结构·金融
C++业余爱好者14 分钟前
JVM优化入门指南:JVM新生代、老年代的核心概念与内存分配逻辑
java·开发语言·jvm
韩凡16 分钟前
【java中的SSO】
java·开发语言
白露与泡影20 分钟前
60亿消息表如何分库分表?
java·开发语言·面试