动态字符串输入,未知长度,并在c语言中转换为所需类型

动态字符串输入,未知长度,并在c语言中转换为所需类型,c,dynamic,input,C,Dynamic,Input,我需要将输入的字符串转换为结构数组。 输入模式为: 城市名称,城市名称,城市名称,…城市名称 我的结构: typedef struct Node{ int age; char name[30]; }Node; 我可以为所有数据动态分配一个结构数组吗? 字符串的长度未知 首先获取城市名称。然后得到2个输入扫描(“%s”和&s)。现在检查s是否为城市终点。如果没有,则将其转换为int`并在变量中获取名称 现在,您将维护一个节点列表。每当您获得age和name时,您将创建一个节点并

我需要将输入的字符串转换为结构数组。 输入模式为: 城市名称,城市名称,城市名称,…城市名称

我的结构:

 typedef struct Node{
    int age;
    char name[30];
}Node;
我可以为所有数据动态分配一个结构数组吗?
字符串的长度未知

首先获取城市名称。然后得到2个输入扫描(“%s”和&s)
。现在检查
s
是否为城市终点。如果没有,则将其转换为
int`并在变量中获取名称

现在,您将维护一个节点列表。每当您获得
age
name
时,您将创建一个节点并将其添加到列表中

typedef struct Node{
    int age;
    char name[30];
    Node *next;
}Node;
用于分配节点-

Node *head;
void insert(Node *head,int age,char* name)
{
    Node *temp=(Node*)malloc(sizeof(struct Node));
    temp->age=age;
    temp->next=NULL;
    strcpy(temp->name,name);
    Node *t=head;
    if(t==NULL)
    {
        head=temp;
        return;
    }
    else
    {
       while(t->next!=NULL)
         t=t->next;
       t->next=temp;
    }
}

正如执行时所知,动态分配似乎确实是一个不错的选择。请提供一些数据样本行。更好的是,发布您尝试过的内容。我的问题是将所有输入作为一个字符串,然后将其放入数组结构中。城市名称表示它是输入的开始,而“城市的结束”表示它是数据的结束。我正在寻找一种按类型获取所有数据的方法。谢谢。@GTa:我将相应地修改我的答案。谢谢你的帮助。@GTa:如果答案有用,请接受/投票。因为这就是这篇文章对未来用户有用的原因