gpt4 book ai didi

c - 编写递归字符串反向器 我的较小输入是什么?

转载 作者:行者123 更新时间:2023-12-05 01:21:44 24 4
gpt4 key购买 nike

我的练习说我需要使用这个原型(prototype)编写一个递归函数来反转给定的字符串:void reverse(char s[]);

我唯一可以使用的预写函数是 string.h 库中的 strlen()

我不知道从哪里开始。

最佳答案

首先让您的函数调用另一个执行实际递归的函数:

这可能是更熟悉的递归签名:

void reverse(char s[]) 
{
reverse_helper(s,strlen(s));
}

void reverse_helper(char s[], int position)
{
// actual recursive code goes here
}

因为你不能使用辅助函数:

这是家庭作业,听起来您不只是想要答案,所以请问自己以下问题。

您的基本情况是什么?

strlent(s) <= 1//不需要反转
在 strlen(s) == 2 处,我们需要一个没有递归的简单反转。

我们知道反转 2 长度的字符数组很简单,但是如何反转 3 长度的字符数组呢?

从长度为 3 的数组中取出最后一个字符,并将其放在反转的长度为 2 的数组的前面。

我对 reverse 的回溯调用有何影响?

一个小一号的新字符数组。

关于c - 编写递归字符串反向器 我的较小输入是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com