gpt4 book ai didi

c - 递归地反转C中的数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:46 24 4
gpt4 key购买 nike

这是我的代码的一部分,我在其中尝试递归地反转字符串:

    char reverse[10];
gets(reverse);
reverseString(reverse, (strlen(reverse) - 1));
void reverseString(char ar[], int n)
{
if (n == 0)
{
return;
}
else
{
int temp = ar[n];
ar[n] = *(ar);
*(ar) = temp;
reverseString((ar + 1), (n - 1));
}
}

当我输入字符串“hello”时,它会将字符串更改为“ohell”。我需要它将字符串完全反转为“olleh”。有人可以帮忙吗?

最佳答案

既然你交换了数组的第一个和最后一个元素,你应该递归使用剩余的 n-2 元素(而不是 n-1)调用函数,

void reverseString(char ar[], int n)
{
if (n <= 0)
{
return;
}
else
{
int temp = ar[n];
ar[n] = *(ar);
*(ar) = temp;
reverseString((ar + 1), (n - 2));
}
}

(我假设您的代码中的 reverseStringreverseAr 是实际上是相同的功能,也许是一些复制粘贴错误。)

关于c - 递归地反转C中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128012/

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