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;
}
相关推荐
凸-皿-凸12 分钟前
通过java将 word(.doc) 转 md
java·开发语言·word
爱吃生蚝的于勒23 分钟前
一文学会c++继承 组合
java·c语言·开发语言·数据结构·c++·算法·蓝桥杯
WSSWWWSSW24 分钟前
Numpy科学计算与数据分析:Numpy数据分析基础之统计函数应用
开发语言·python·数据挖掘·数据分析·numpy
西猫雷婶41 分钟前
python学智能算法(三十四)|SVM-KKT条件回顾
开发语言·人工智能·python·算法·机器学习·支持向量机
阿捏利1 小时前
【加解密与C】CRC128
c语言·加解密·crc·crc128
zgc12453671 小时前
Linux学习-数据结构(链表)
linux·开发语言·数据结构·vscode·链表
OEC小胖胖1 小时前
幕后英雄 —— Background Scripts (Service Worker)
开发语言·前端·javascript·浏览器·web·扩展
红鲤鱼遇绿鲤鱼1 小时前
cf Educational Codeforces Round 177 C. Disappearing Permutation
java·c语言·算法
程序猿编码4 小时前
二进制签名查找器(Aho-Corasick 自动机):设计思路与实现原理(C/C++代码实现)
c语言·c++·网络安全·二进制·逆向工程·ac自动机
mailtolaozhao4 小时前
C#入门--Hello world
开发语言·c#