当前位置: 代码迷 >> C语言 >> [求助]我想要把name改成字符串输入和输出字符串,要怎么改?
  详细解决方案

[求助]我想要把name改成字符串输入和输出字符串,要怎么改?

热度:225   发布时间:2006-08-30 20:59:27.0
[求助]我想要把name改成字符串输入和输出字符串,要怎么改?

#include "stdio.h"
#include "stdlib.h"
struct awp
{char name;
int a,b;
struct awp *next;
}*creat();

void main()
{struct awp *head,*pp;
head=creat();
for (pp=head;pp!=NULL;pp=pp->next)
printf("%c%d%d",pp->name,pp->a,pp->b);
}

struct awp *creat()
{struct awp *head=NULL,*tail=NULL,*p;
char name[80];
int a,b,size;
size=sizeof(struct awp);
scanf("%c%d%d",name,&a,&b);
while (a!=0){
p=(struct awp *)malloc(size);
p->a=a;p->b=b;p->name=name[7],p->next=NULL;
if (head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%c%d%d",name,&a,&b);}

return head;
}
我想要把name改成字符串输入和输出字符串,要怎么改?

搜索更多相关的解决方案: name  字符  输出  输入  

----------------解决方案--------------------------------------------------------


#include "stdio.h"
#include "stdlib.h"
struct awp
{
char name[20] ;
int a,b ;
struct awp*next ;
}
*creat();

void main()
{
struct awp*head,*pp ;
head=creat();
for(pp=head;pp!=NULL;pp=pp->next)
printf("%s%d%d",pp->name,pp->a,pp->b);getch();
}

struct awp*creat()
{
struct awp*head=NULL,*tail=NULL,*p ;
char name[20];
int a,b,size ;
size=sizeof(struct awp);
scanf("%s%d%d",name,&a,&b);
while(a!=0)
{
p=(struct awp*)malloc(size);
p->a=a ;
p->b=b ;
strcpy(p->name,name),p->next=NULL ;
if(head==NULL)
tail=head=p ;
else
tail->next=p ;
tail=p ;
scanf("%s%d%d",name,&a,&b);
}

return head ;
}
链表也有点问题,把char name改成数组就行.您仔细对照下吧.


----------------解决方案--------------------------------------------------------

不好意思,我刚学1个月,请问为什么要用strcpy(p->name,name)复制函数呢,而不能直接进行赋值???
还有就是请问链表的什么地方有问题,我看不出来,我太菜了,呵呵


----------------解决方案--------------------------------------------------------

p->name是一数组名,已经有确定的空间,直接赋值就把地址又指向name地址,这是不允许的,只有把name的内容复制到p->name中.
至于链表,第一次应该把tail节点和head节点统一起来。即head=tail=p;


----------------解决方案--------------------------------------------------------
怪不得我p->name=name怎么做都不能正确输出,真是谢谢了
----------------解决方案--------------------------------------------------------
  相关解决方案