【C/C++】【三种方法】模拟实现strlen

学习目标:

  • 使用代码模拟实现strlen。

逻辑:

  • strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。
  • strlen 需要计算字符串数组有多少个元素。

代码1:使用计数器

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int strlen_mine(char * pc)
{
	int count = 0;
	for (int i = 0; pc[i] != '\0'; i++)
	{
		count++;
	}
	return count;
}

int main()

{
	char str[6] = "ALICE";
	int ret = strlen_mine(str);
	printf("%d", ret);
	return 0;
}

代码2:使用递归

cpp 复制代码
int strlen_mine2(char* pc)
{
	if (*pc == '\0')
	{
		return 0;
	}
	else
	{
		return (strlen_mine2(pc + 1) + 1);
	}
}

int main()

{
	char str[6] = "ALICE";
	int ret = strlen_mine2(str);
	printf("%d", ret);
	return 0;
}

代码3:使用指针 - 指针

cpp 复制代码
int strlen_mine3(char* pc)
{
	assert(pc);
	char* p = pc;
	while(*p != '\0')
	{
		p++;
	}
	return (p - pc);
}

int main()

{
	char str[6] = "ALICE";
	int ret = strlen_mine3(str);
	printf("%d", ret);
	return 0;
}

这里一共提供了三种思路供大家参考。


相关链接:

【C/C++】函数的递归-CSDN博客

C语言指针的介绍-CSDN博客


相关推荐
我叫洋洋10 小时前
C ++ [ hello world ]
c语言·c++·算法
SeaTunnel11 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影11 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
天空'之城11 小时前
C 语言工业级通用组件手写 09:CRC32 数据校验
c语言·嵌入式开发·数据校验·crc32·工业级组件
奋发向前wcx11 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
Marst Code12 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao1213112 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城13 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
王维同学14 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
来自天蝎座的孙孙14 小时前
论Scratch3.32.0与3.29.1与3.30.5
青少年编程·电脑