gpt4 book ai didi

c - 从指针访问结构

转载 作者:行者123 更新时间:2023-11-30 20:20:27 27 4
gpt4 key购买 nike

您好,我需要有关如何将 g 分配给“assign_guest_at”中的特定座位的帮助,以便我可以检查它以了解更多条件(问题如下所述)。

该函数尝试将“g”分配给位于“行”和“列”(由该参数指定)功能)。如果座位有默认客人,即客人姓氏为“???”和名字“???”,然后我们可以将新客人“g”分配到该座位,然后方法返回 true。否则,该席位被视为被别人拿走了,该方法不赋值访客并返回 0(假)。

 struct guest {
char last_name[30];
char first_name[30];
};
struct auditorium_seating {
struct guest **seating;
};
void guest_init(struct guest *g, char *info)
{
char *token;
token = strtok(info, "/");
strcpy(g->first_name, token);
token = strtok(NULL, "\0");
strcpy(g->last_name, token);

}
int assign_guest_at(int row, int col, struct auditorium_seating *a, struct guest* g)
{

if (a->seating[row][col] == "???")
{


return 1;
}
else
{
return 0;
}
}

最佳答案

为了比较 C 中的字符串,有一个名为 strcmp 的函数,它比较两个字符串,如果相等则返回 0。

要在结构中使用它,您应该使用默认的 guest 逻辑对每个字段执行此操作。

我认为下面的代码可以满足您的要求:

int assign_guest_at(int row, int col, struct auditorium_seating *a, struct guest* g)
{

if ( strcmp(a->seating[row][col].first_name, "???") == 0 &&
strcmp(a->seating[row][col].last_name, "???") == 0)
{
a->seating[row][col] = *g;
return 1;
}
else
{
return 0;
}
}

关于c - 从指针访问结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46270581/

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