【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;
}
相关推荐
春日见12 小时前
丝滑快速拓展随机树 S-RRT(Smoothly RRT)算法核心原理与完整流程
人工智能·算法·机器学习·路径规划算法·s-rrt
Code小翊12 小时前
”回调“高级
算法·青少年编程
云里雾里!12 小时前
力扣 977. 有序数组的平方:双指针法的优雅解法
算法·leetcode·职场和发展
夏天的味道٥14 小时前
@JsonIgnore对Date类型不生效
开发语言·python
小白学大数据15 小时前
Python爬虫伪装策略:如何模拟浏览器正常访问JSP站点
java·开发语言·爬虫·python
一只侯子15 小时前
Face AE Tuning
图像处理·笔记·学习·算法·计算机视觉
jianqiang.xue15 小时前
别把 Scratch 当 “动画玩具”!图形化编程是算法思维的最佳启蒙
人工智能·算法·青少年编程·机器人·少儿编程
SEO_juper16 小时前
别再纠结LLMs.txt了!它背后的真相与最佳使用场景,一文讲透。
开发语言·ai·php·数字营销
g***B73816 小时前
JavaScript在Node.js中的模块系统
开发语言·javascript·node.js
不许哈哈哈16 小时前
Python数据结构
数据结构·算法·排序算法