【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博客


相关推荐
小CC吃豆子1 分钟前
Java数据结构与算法
java·开发语言
R-G-B2 分钟前
BM28 二叉树的最大深度
数据结构·算法·二叉树·bm28·二叉树的最大深度
晨旭缘2 分钟前
后端日常启动及常用命令(Java)
java·开发语言
星辰_mya10 分钟前
RockerMQ之commitlog与consumequeue
java·开发语言
用户02033886131410 分钟前
红黑树主要功能实现
算法
꧁Q༒ོγ꧂11 分钟前
C++ 入门完全指南(六)--指针与动态内存
开发语言·c++
梁山1号11 分钟前
【关于CAN】
c语言·stm32·单片机
永远不打烊12 分钟前
c++ 11 之 并发与多线程
c++
IT=>小脑虎14 分钟前
2026版 Go语言零基础衔接进阶知识点【详解版】
开发语言·后端·golang
ChangYan.15 分钟前
ffi-napi运行失败,报错:No native build was found,解决办法
开发语言