将字符串存储在c中的链表中

时间:2017-03-22 06:15:42

标签: linked-list

我是编程方面的新手,在我的大学里我的第二个学期,一位教师教我们关于链表和malloc函数,我们可以动态地创建一个节点并增加或减小它的大小。我们的老师教我们如何在这个列表中存储一个整数值

struct node
{ 
  int num;
  struct node *next;
}head;

但我想在链表中存储一个字符串,说“学生名字”而不是整数..所以我想知道如何做到这一点.. 我为此编写了这段代码

#include <stdio.h>
#include <conio.h>
struct node
{
    char name[20];
    int age;
    struct node *next;
};
//
void addatbegin(struct node **q,char name [20],int age)
{
    struct node *r;
    r=(struct node *)malloc(sizeof(struct node));
    r->name=name;
    r->age=age;
    r->next=*q;
    *q=r;
}
//
void addatend(struct node **q,char name[20],int age)
{
    struct node *temp,*r;
    if(*q==NULL)
    {
        temp=(struct node *)malloc(sizeof(struct node));
    temp->name=name;
    temp->age=age;
    temp->next=NULL;
    *q=temp;
    }
else {
    temp=*q;
    while(temp->next!=NULL)
    {
        temp=temp->next;
    }
r=(struct node *)malloc(sizeof(struct node));
r->name=name;
r->age=age;
r->next=NULL;
temp->next=r;
}}

void main()
{
    struct node *head;
    int age,ch;
    char name[20];
    head=NULL;
    while(1)
    {
        printf("***** MENU ****** \n");
        printf("1.Add at Begining of List\n");
        printf("2.Add at End of List\n");
        printf("3.Print the list\n");
        printf("4.Exit\n \n");
        printf("Enter Your choice:- ");
        scanf(" %d",&ch);
        switch(ch)
        {
            case1:printf("Enter Name:- ");
            scanf(" %s",name);
                        printf("Enter Age:- ");
                        scanf(" %d",&age);
 addatbegin(&head,name,age);
 break;
        }
getch(); }}

但其失败的错误左值

0 个答案:

没有答案