gpt4 book ai didi

c - 我对整数数组有疑问;很难解释

转载 作者:行者123 更新时间:2023-11-30 18:39:45 26 4
gpt4 key购买 nike

我在程序的这一部分遇到了麻烦,我需要将特定字母转换为特定数字(基本上,如果输入 a,那么我希望它返回 1)。 intArray 正在捕获数字,但此后并没有结束。它继续打印出更多。字符数组没有特定的长度,所以我只是输入了一些较大的数量。 str1 将是输入的字母。

    char str1[200];
char alphabet[27] = "abcdefghijklmnopqrstuvwxyz";
int num[27] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26};
int intArr1[200];

w = 0;
for(i=0;i<27;i++)
{
if(str1[w] == alphabet[i])
{
intArr1[w] = num[i];
w++;
i = 0;
}
else if(str1[w] == '\0')
{
break;
}
}

int len = sizeof(intArr1);
for(i=0;i<len;i++)
{
printf("%d", intArr1[i]);
}

最佳答案

几个问题:

int len = sizeof(intArr1);  // this line returns the number of 
// bytes the array occupies (800 in your case)
for(i=0;i<len;i++)
{
printf("%d", intArr1[i]);
}

sizeof 操作不适合您的使用。

其次,您需要保留一个计数器来保存填充时 intArr 的有用长度,称为 w。您应该使用它来代替计算的 len 变量。

for(i=0;i<w;i++)
{
printf("%d", intArr1[i]);
}

这应该打印数组的有用内容,并在您认为应该结束时结束。

然而,正如评论中所指出的,根据您的总体目标,您不会希望仅依靠使用 w 来维护计数,而是保留一个跟踪全局计数器intArr 的大小,因此您可以为输入数据的多次传递保留有效的索引指针。

祝你好运...

关于c - 我对整数数组有疑问;很难解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706769/

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