[C语言]将字符数组中的每一个元素进行逆转的方法

对于一个字符数组中元素逆转的方法我总结了以下的两个方法

1.即为最常见的一个方法:创建一个新的变量对首元素进行储存,再将其与最后一位的元素进行互换,两边的地址读取再分别加上一和减去一,大致代码如下:

 

 2.第二种方法是利用递归的方法:

对于以下创建的字符数组 arr[]="abcdef",大致方法如下:

大致思路:--

//1.先进行a以及f的交换;
//2.进行逆序--这里我创建了一个函数 reverse_string对剩下的("b c d e")进行互换;
//3.剩下的b c d e再重复上述操作,使得b与e进行交换;c再与d进行交换;

步骤详解:--

//首先将a,f取下来,将f放到a的位置,然后将f原来的位置先放一个'\0',再对bcde进行逆序;
//最后将a补回f的位置;之后按此操作重复进行即可完成任务;

代码大致如下所示:

有一个值得注意的点,在代码的62行注意不要忽略了递归的限制条件,即在奇数个字符的情况下,

例如:int arr1[] = "abcdefg",则递归到最后一层会剩下d一个字符,此时strlen(arr)==1;若在双数个字

符的条件下,例如 int arr2[]="abcdef",则递归到最后一层剩下的字符数为0,此时strlen(arr)==0;

因此递归进行的条件是 strlen(arr)>=2.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值