gpt4 book ai didi

c - 将输入中的数字加载到数组中

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

我已经给出了输入,其中包含我将要处理并保存到数组中的数据。输入看起来像这样:

{ [1, 10], [2,1] , [-10, 20] }

里面可以有更多的元素。我需要处理它,以便我可以将 [number,number] 中的所有数字加载到 2d array 中,第一个数字应该在第 0 个,第二个数字应该在第一个索引处,所以这个数组应该看起来像

[[1,10],[2,1],[-10,20]]

但我未能找到解决方案,如何将此输入处理到我想要的数组中。正确的做法是什么?我试着做如下:

   int main()
{
long long int cisla[10][2];
int x;
int y;
int i;
int index=0;
int counter=0;
char c;
char zatvorka_one;
char zatvorka_three;
char ciarka;
char ciarka_two;
printf("Pozicia nepriatela\n");
c=getchar();
if(c!='{'){
return 0;
}
scanf(" %c%d,%d%c",&ciarka,&x,&y,&zatvorka_one);
cisla[index][0]=x;
cisla[index][1]=y;
index++;
while(1){
scanf("%c",&ciarka);
if(ciarka=='}'){
break;
}
scanf(" %c%d%,%d%c",&ciarka,&x,&y,&zatvorka_one);
cisla[index][0]=x;
cisla[index][1]=y;
index++;
}
for ( i = 0; i < index; i++){
printf("%d %d\n",cisla[i][0],cisla[i][1]);
}
}

但不知何故它返回了意想不到的结果,我该如何解决?

最佳答案

您应该使用 gets 而不是 scanf。 gets 将返回整个字符串,这将很容易。然后你应该阅读有关 strtok 的内容,它可用于分隔字符串。例如:strtok(s,",") 会将您的字符串分成更小的字符串。对于输入{[12,4],[8,9]}会分为:第一串:{[12 第二串:4]第三串[8和第四串9]}。现在你只需要删除不是数字的字符,如 { } 和 []。之后,您将只有带有数字的字符串,因此您可以使用另一个预定义的函数,您应该阅读名为 atoi 的 abput。它接收一个字符串并将其转换为一个 int(ascci 到 int)。如果需要,还有一个 atof(ascci 到 float )。 Tuturialpoints 是查找有关如何使用我提到的这些功能的示例的好地方。

关于c - 将输入中的数字加载到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34762801/

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