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


相关推荐
雨中rain5 分钟前
贪心算法(1)
算法·贪心算法
不爱学习的YY酱12 分钟前
【操作系统不挂科】<CPU调度(13)>选择题(带答案与解析)
java·linux·前端·算法·操作系统
zongzi_49417 分钟前
二次封装的天气时间日历选择组件
开发语言·javascript·ecmascript
平头哥在等你23 分钟前
求一个3*3矩阵对角线元素之和
c语言·算法·矩阵
飞滕人生TYF26 分钟前
动态规划 详解
算法·动态规划
kikyo哎哟喂27 分钟前
Java 代理模式详解
java·开发语言·代理模式
_OLi_29 分钟前
力扣 LeetCode 106. 从中序与后序遍历序列构造二叉树(Day9:二叉树)
数据结构·算法·leetcode
duration~33 分钟前
SpringAOP模拟实现
java·开发语言
一条晒干的咸魚42 分钟前
【Web前端】实现基于 Promise 的 API:alarm API
开发语言·前端·javascript·api·promise
尹蓝锐1 小时前
C语言-11-18笔记
c语言