c语言用递归实现字符串反转,C语言中 递归实现字符串逆置

递归图解:

每次递归时,都会创建一个字符变量C来保存字符串首位元素,

然后将字符串末尾元素赋给首位

同时字符串的起始位置都会向后推移一位,而结尾位置都会向前推移一位,

而在递归完成后,会将C中保存的字符赋给字符串结尾位置,以实现字符串的逆置

代码实现:

#include

void reverse_string(char* string)

{

char c;

int len = strlen(string);

if (len > 1)                          //每次递归 len的值都会减2(同时每次递归首位置和末尾位置都不同)

{

c = string[0];                    //每次递归都会创建一个 字符变量c,用来保存首元素

string[0] = string[len - 1];      //把末尾元素赋给首元素

string[len - 1] = '\0';           //把末尾位置置为 '\0'

reverse_string(string + 1);

string[len - 1] = c;               //将首元素放入末尾位置

}

}

int main()

{

char string[] = "qwertyuiop";

printf("逆置前: %s\n", string);

reverse_string(string);

printf("逆置后: %s\n", string);

return 0;

}

运行结果:

逆置前: qwertyuiop

逆置后: poiuytrewq

请按任意键继续. . .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值