【C语言】【strlen函数的使用与模拟实现】

1.strlen函数的使用和模拟实现

1.1使用:

c 复制代码
size_t strlen(const char* str)

返回类型为无符号整型,参数是字符指针

计算的是字符串中到"\0"之前的字符个数

1.2模拟实现:

方法一:计数器式遍历

c 复制代码
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
  int count=0;
  assert(arr);
  while(*arr)
  {
   arr++;
   count++;
  }
  return count;
}

int main()
{
 char arr[]="abcdef";
 size_t ret=my_strlen(arr);
 printf("%d\n",ret);
 return 0;
}

方法二:递归方式实现

c 复制代码
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
	assert(arr);
	if (*arr == '\0')
		return 0;
	else
		return 1 + my_strlen(arr + 1);

}
int main()
{
	char arr[] = "abcdef";
	size_t ret = my_strlen(arr);
	printf("%d\n", ret);
	return 0;
}

方法三:指针减指针

c 复制代码
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* arr)
{
	assert(arr);
	char* p = arr;
	while(*p!='\0')
		p++;
	return p - arr;
	
}
int main()
{
	char arr[] = "abcdef";
	size_t ret = my_strlen(arr);
	printf("%zd\n", ret);
	return 0;
}
相关推荐
找了一圈尾巴1 小时前
Wend看源码-Java-Collections 工具集学习
java·开发语言·学习
Ai 编码助手3 小时前
Go 语言 API 限流实战:保障系统稳定性的护盾
开发语言·后端·golang
玩大数据的龙威4 小时前
【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
开发语言·python
hellBaron5 小时前
C语言宏和结构体的使用代码
c语言·数据结构·算法
唐棣棣5 小时前
期末速成C++【知识点汇总完】
开发语言·c++
yannan201903135 小时前
【数据结构】(Python)差分数组。差分数组与树状数组结合
开发语言·python·算法
WongKyunban6 小时前
Bash Shell知识合集
开发语言·chrome·bash
宇寒风暖6 小时前
软件工程期末大复习(三)
笔记·学习·软件工程
我的运维人生7 小时前
机器学习算法深度解析:以支持向量机(SVM)为例的实践应用
算法·机器学习·支持向量机·运维开发·技术共享
后端转全栈_小伵7 小时前
MySQL线上事故:使用`WHERE`条件`!=xxx`无法查询到NULL数据
数据库·后端·sql·mysql·学习方法