c - 如何将变量设置为结构体的名称?

标签 c variables struct

所以现在我正在制作一个程序,其中涉及创建许多以机场目的地命名的结构,但我遇到了一个问题,我似乎找不到解决方案。如何使用变量而不是字符串本身给出结构的名称?如:

struct airport {
    char name;
    int capacity;
}

int main(void)
{
    id = "dubai";
    struct airport id;
}

我希望创建结构:

struct airport dubai;

最佳答案

作为模块的示例:

struct airport{
    char *name;
    int capacity;
} all_airports[MAX+AIRPORTS];
int nextAirport;

struct airport *newAirport(char *name, int capacity)
{
    all_airports[nextAirport].name= malloc(strlen(name)+1);
    strcpy(all_airports[nextAirport].name, name);
    all_airports[nextAirport].capacity= capacity;
    return(&all_airports[nextAirport++]);
}

现在您可以使用以下方式创建机场:

int main(){
    struct airport *myAirport= newAirport("Dubai",1000);
}

然后使用 strcmp 遍历数组来查找您的机场。

关于c - 如何将变量设置为结构体的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138698/

相关文章:

c - 使用 pthread 模拟循环

c - 从C文件中读取unicode字符

c - 如何更改作为参数传递给函数的变量?

c# - 另一个 "Why shouldn' t 结构是可变的?”C#

Python len() 不返回整数

C 置换与 memcpy 问题

c++ - 使用指针替换 C 字符串中的字符

java - 重用从类返回的用户输入值,而不重新请求用户输入

variables - 如何使用PowerShell变量作为命令参数?

scala - 如何将两个具有不同结构类型字段的 spark Dataframe 联合起来?