栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言|递归实现字符串反转

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言|递归实现字符串反转

递归的本质就是,大事化小。

#1 思路

要实现字符串的反转,思路如下:

  1. 将开始字符取出存入临时变量tmp
  2. 将末尾字符赋值给开始字符
  3. 将末尾字符赋值为‘’
  4. 字符串数组+1后计算字符串长度
  5. 计算字符串长度,当长度大于等于2时,重复1-4;否则将tmp赋值给末尾字符
#2 图解说明

红色代表当前数组的起始地址。

#3 代码实现
void reverse_string(char* str)
{
	char tmp = *str;
	int len = strlen(str);
	*str = *(str + len - 1);
	*(str + len - 1) = '';

	if (strlen(str + 1) >= 2)
	{
		reverse_string(str + 1);
	}
	*(str + len - 1) = tmp;
}
#4 总结

这个思路还是比较绕的,尤其是判定递归跳出的条件。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012643.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号