gpt4 book ai didi

c - 简单查找结构的键

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:27 26 4
gpt4 key购买 nike

有没有办法在这段代码中实现“LookupFunc”:

enum FoodType { FRUIT, VEGGIE, DESSERT };

struct Food {
char name[20];
int index;
FoodType type;
};

struct Food APPLE = {"apple", 0, FRUIT};
struct Food CARROT = {"carrot", 1, VEGGIE};
struct Food CANDY = {"candy", 2, DESSERT};


struct Food f = LookupFunc("apple");
printf("indexof apple: %d\n", f.index);
printf("type of apple: %d\n", f.type);

我将只有 8 种类型的 Food 对象/结构,但搜索的可能性是无限的。理想情况下,我的结构中不需要 char name[20],它会通过变量名进行,但我认为 C 无法做到这一点。我觉得使用多维数组并使用 for 循环搜索可能会更容易。

最佳答案

像这样制作一个struct Food数组:

#define MAX_FOODS (8)
struct Food foods[MAX_FOODS] = {
{"apple", 0, FRUIT},
{"carrot", 1, VEGGIE},
{"candy", 2, DESSERT},
...
};

这样,搜索和索引就很容易了。

int i = LookupFunc("apple");

int LookupFunc(char *str)
{
for(int i = 0; i < MAX_FOODS; i++)
{
if(strcmp(foods[i].name, str) == 0)
return i;
}

return -1; // Not found
}

关于c - 简单查找结构的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128150/

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