首页 > 其他分享 >不创建临时变量求字符串长度--初识递归

不创建临时变量求字符串长度--初识递归

时间:2024-01-17 22:32:58浏览次数:25  
标签:arr 数组 递归 -- my 初识 str strlen

递归:一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。

递归的例题应用:不创建临时变量求字符串长度。

int my_strlen(char* str)
{
	if (*str != '\0')
	{
		return 1 + my_strlen(str + 1);
	}
	else
		return 0;
}

int main()                
{
	char arr[] = "bit";
	int len = my_strlen(arr);   //arr是数组,数组传参,传过去的不是整个数组,而是第一个元素的地址
	printf("len=%d\n", len);

	return 0;
}

求数组arr中bit的字符长度,自定义函数my_strlen(),放入arr进行传参,由于arr是数组,所以传过去的是第一个元素的地址,在my_strlen()函数中设置形参就因该为char* str。

在my_strlen()函数中进行判断,如果形参str没有遇到‘‘\0’’,则没有结束,此时进行递归,用1再加上my_strlen(str+1),其中my_strlen(str+1)即为下一个字符,直至遇到“\0”,返回0后计算结果,得出“bit”的字符长度为3。

递归递归,就是递和归,递归的两个必要条件: 1、存在限制条件,满足限制条件时递归能停下来,否则会栈溢出。 2、每次递归调用之后越来越接近这个限制条件。

递归还是比较难想到的,要多加思考,勤加练习,才能化繁为简。



标签:arr,数组,递归,--,my,初识,str,strlen
From: https://blog.51cto.com/u_16511093/9298484

相关文章

  • stable Diffusion python 运行时抛出一个异常
    Python中的异常处理引言在编程过程中,我们经常会遇到各种错误和异常情况。为了提高程序的稳定性和可靠性,我们需要对这些异常情况进行处理。在Python中,异常处理是一个非常重要且常用的功能。异常的概念异常是程序中不正常的情况,例如:文件不存在、数组越界、除零错误等。当异常发生......
  • stable diffusion 运行时python意外退出 mac
    StableDiffusion运行时Python意外退出Mac实现指南简介在开发过程中,我们经常会遇到Python运行时意外退出的情况。这可能是由于代码错误、内存不足、依赖问题等原因导致的。本文将指导你如何在Mac系统上实现StableDiffusion运行时Python意外退出的解决方案。整体流......
  • LLaMA如何使用python调用
    使用Python调用LLaMA解决图像分类问题介绍LLaMA(LowLatencyModelAnalyzer)是一个用于分析和优化机器学习模型的开源工具。它可以帮助开发者在低延迟的环境中运行模型,并提供优化建议。本文将介绍如何使用Python调用LLaMA来解决一个具体的问题——图像分类。问题描述假设我们有......
  • stable diffusion java开发
    实现“stablediffusionjava开发”作为一名经验丰富的开发者,我将帮助你了解和实现“stablediffusionjava开发”。下面是整个过程的步骤表格:步骤操作步骤1确定项目需求和目标步骤2设计系统架构步骤3编写代码步骤4运行和测试代码步骤5调试和修复错误......
  • stable diffusion python运行时抛出了一个异常
    实现“stablediffusionpython运行时抛出了一个异常”介绍在Python开发过程中,我们经常会遇到运行时抛出异常的情况。异常是程序在执行过程中发生的错误,如果不加以处理,就会导致程序终止或产生意想不到的结果。本文将教会你如何在Python中处理异常,并实现“stablediffusionpython......
  • whisper分句 python
    实现"whisper分句python"简介在本文中,我将向你介绍如何使用Python实现"whisper分句"功能。"whisper分句"是指将一段文字分成多个句子,每个句子都是以小写字母开始,并且紧跟着一个空格。这个功能可以在自然语言处理和文本分析中非常有用,例如对文本进行分词或者句子级别的情感分析......
  • 搜索学习笔记+杂题 (进阶二 dfs/bfs的进阶)
    前言:由于搜索的题还是做的太少了,所以以后有可能会不定期更新。四、还是进阶的dfs/bfs相关题单:戳我1、dfs(1)meetinthemiddleP2962[USACO09NOV]LightsG颠覆了我对折半搜索的认知,果然,只要满足了折半搜索的几个性质,基本上都可以使用折半搜索来处理。首先我们拿到的是一张......
  • 2024省选联测12
    A.硬币给定\(n\),在满足\(x\timesy=n^2+1\)且\(x,y\ge2\)的前提下,最大化\(x+y\)。从后向前扫描序列,第\(i\)个数被扫到时为\(p\),\(p\)为质数或者为\(1\)。第\(i+kp,k\in\mathbb{Z}\)个数仍然是\(p\)的倍数。因为\[i^2+1\equiv0\modp\]所以\[(i+kp)^2+......
  • 个人面试笔试记录与复盘
    据说把鼠标放在标题后面可以查看目录哦~用时间洪流泡的茶,根本就品不出茶味,所以,不要诧异,坚定步伐,慢慢细品,就好! 红色是雷,绿色是个人感觉公司氛围挺不错,黑色为没从hr/面试官对话中体会到公司氛围。瑞鑫天算社招,上来笔试180题,6套题(C++,python,强化学习,机器学习,numpy,pandas),30......
  • 安装GPU版本Pytorch失败:torch.cuda.is_available()为False
    问题所在检查condalist发现,实际安装的Pytorch为CPU版本(虽然安装时明确指定了cuda版本):上图中可以看出,Pytorch的描述为:py3.9_cpu_0解决办法有可能是因为环境中存在一个叫“cpuonly”的包,导致无法安装GPU版本Pytorch:卸载掉它即可,卸载它时会自动将Pytorch更新为GPU版本:如果......