gpt4 book ai didi

c - Xcode c printf()中输出中的倒置问号

转载 作者:太空宇宙 更新时间:2023-11-04 08:37:35 24 4
gpt4 key购买 nike

我正在尝试运行以下代码来找出字符串的排列:

void swapchar(char *a,char *b)
{
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}

void permute (char *a,int i,int n)
{
if (i==n)
{
for (int k=0;k<(sizeof(a)/sizeof(a[0]));k++)
{
printf("\t%c",a[k]);
}
printf("\n");
}
else
{
for (int j=i;j<n;j++)
{
swapchar((a+i),(a+j));
permute(a, i+1, n);
swapchar((a+i),(a+j));
}
}
}

我得到的输出是这样的:

K   N   L   U   A    <inverted ?> <inverted ?> <inverted ?>       
K A N U L <inverted ?> <inverted ?> <inverted ?>
K A N L U <inverted ?> <inverted ?> <inverted ?>
K A U N L <inverted ?> <inverted ?> <inverted ?>
K A U L N <inverted ?> <inverted ?> <inverted ?>
K A L U N <inverted ?> <inverted ?> <inverted ?>

您能否向我解释一下我的代码哪里出错了,我在最后得到了这些垃圾字符?

最佳答案

在您的代码中使用 sizeof(a)/sizeof(a[0]) 没有达到您的预期,因为您传递给函数的数组“衰减”为指针。尝试将数组的大小作为参数之一显式传递。

关于c - Xcode c printf()中输出中的倒置问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25613312/

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