字符串逆序(C语言版 函数,递归方法)

121 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

🌹作者:云小逸 📝个人主页:[云小逸的主页](云小扬 的个人主页 - 动态 - 掘金 (juejin.cn))
📝码云:云小逸 (YunXiaoYi003) - Gitee.com
🤟motto:要敢于一个人默默的面对自己,==强大自己才是核心==。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。==希望春天来之前,我们一起面朝大海,春暖花开!==🤟
👏专栏:C语言初阶👏

@TOC


前言

—————————————————————————————— 首先先写上几句话:献给坚持创作的我和点开这篇文章希望进步的你

1、人初做事,如鸡伏卵,不舍而生气渐充。如燕营巢,不息而结构渐牢。如滋培之木,不见其长,有时而大。如有本之泉,不舍昼夜,盈科而后进,放乎四海。——曾国藩这是我最喜欢的一句名言,每次读,都会让浮躁的心更静一些,更稳一些。「不见其长,有时而大」八个字尤为值得琢磨。 2、先干起来,逢山开路,遇水搭桥,有什么问题解决什么问题。坐在那里幻想找到一个神奇的、一劳永逸的解决方案是毫无意义的,干起来,面对问题,解决问题,是我能够想到的最快的进步途径。

题目要求:

将参数字符串中的字符==反向排列==,不是==逆序打印==

解法1(无函数,非递归)

代码:

#include<stdio.h>
#include<string.h>
int main(void)
{
	char arr[] = "abcdef";//a,b,c,d,e,f,\0共六个字符

	int left = 0;
	int right = strlen(arr) - 1;//strlen是遇到\0就停止,不包含\0
	while (left < right)
	{
		char temp = arr[left];
		arr[left] = arr[right];
		arr[right] = temp;
		left++;
		right--;
	}

	printf("%s\n", arr);
	return 0;
}

结果:

在这里插入图片描述

解法二(函数,非递归)

代码:

结果:

在这里插入图片描述

解法三(函数,递归)

代码:

#include<stdio.h>
#include<string.h>
void resverse(char* str)
{
	char temp = *str;//1
	int len =strlen(str);
	*str = *(str + len - 1);//2
	*(str + len - 1) = '\0';//3
	if (strlen(str + 1) >= 2)
	{
		resverse(str + 1);//4
	}
	*(str + len - 1) = temp;

}

int main(void)
{
	char arr[] = "abcdef";//a,b,c,d,e,f,\0共六个字符
	resverse(arr);
	printf("%s\n", arr);
	return 0;
}

结果:

在这里插入图片描述

最后

十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

1.做==更好的自己==,而不是完美的别人。 2.谁都愿意做自己喜欢的事情,可是,做你该做的事情,才叫成长。 3.活成一个真正有形的人,而不是—摊肉、一团混乱不堪的情绪。 4.放弃很容易,但坚持—定很酷。 5.知识不是力量,知识用起来才是力量。 6.人生只有两个选择,要么忙着死,要么忙着活! ==熬得住就出众,熬不住就出局==,你的野心很大,所以没资格停下。 7.白天归顺生活,夜晚忠于自己

最后如果觉得我写的还不错,请不要忘记==点赞==✌,==收藏==✌,加==关注==✌哦(。・ω・。)

愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!