c - 动态输入字符串,长度未知,并转换为c语言想要的类型

标签 c dynamic input

我需要将输入的字符串转换为结构数组。 输入模式是: 城市年龄_1名称_1,年龄_2名称_2,.....年龄_n名称_n城市结束。

我的结构:

 typedef struct Node{
    int age;
    char name[30];
}Node;

我可以为所有数据动态分配一个结构体数组吗? 字符串长度未知!

最佳答案

首先获取城市名称。然后你得到2个输入 scanf("%s",&s) . Now check whether is end of city. If not then covert it to a int` 并获取变量中的名称。

现在您维护一个节点列表。每当你得到 agename您创建一个节点并将其添加到列表中。

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;
    }
}

关于c - 动态输入字符串,长度未知,并转换为c语言想要的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213574/

相关文章:

c++ - 对符号 '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4' 的 undefined reference 在 Ubuntu 上构建 OpenCV

C错误的总和结果与 double

javascript - 在运行时确定的对象类型 - Javascript (ExtJS)

c++ - 需要帮助将包含整数的文件读入数组

使用命令行参数的 C 管道

c - 用于分割二维字符串中字符串单词的函数的段错误

c - 使用 fgets 和 strstr 产生意外结果

java - 如何在Java运行时列出源代码文件名?

c - 访问C中的外部分配空间

c++ - 尝试在 C++ 程序中设置简单的键盘输入。使用变量存储 true 或 false