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;
}
相关推荐
爱吃喵的鲤鱼8 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
DARLING Zero two♡34 分钟前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
Gu Gu Study36 分钟前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
芊寻(嵌入式)1 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
有梦想的咸鱼_1 小时前
go实现并发安全hashtable 拉链法
开发语言·golang·哈希算法
海阔天空_20131 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
天下皆白_唯我独黑1 小时前
php 使用qrcode制作二维码图片
开发语言·php
QAQ小菜鸟1 小时前
一、初识C语言(1)
c语言
夜雨翦春韭1 小时前
Java中的动态代理
java·开发语言·aop·动态代理