c语言中如何把结构体中的char num[10]与数组中的char num2[10]比较数据啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何把结构体中的char num[10]与数组中的char num2[10]比较数据啊?相关的知识,希望对你有一定的参考价值。
stu * del(stu * head,char* num)
stu *p1,*p2;
if(head==0)
printf("表空!\n");
else
p1=head;
while(p1->num!=num && p1->next!=0) //就是这里的p1->num!=num 这个好像是结构体的数据
//和数组的地址比较了 两个都是输入的学号,他们应该如何比较啊?
p2=p1;p1=p1->next;
if(p1->num==num)
if(p1==head)
head=p1->next;
p1->next->pre=NULL;
else
p2->next=p1->next;
p2->next->pre=p1;
printf("删除学号:%s成功\n",num);
n=n-1;
else
printf("没有%s这个学号!\n",num);
return head;
这个函数包含在string.h中 参考技术A while(p1->num!=num && p1->next!=0)
本题是构造了一个双链表,p1从表头开始,这里是比较表中每一个结点的数据域num与传入的需要删除的num,找到需要删除的num以后,删除就行了。
c语言中2个结构体的头指针相等,会不会把其中一个覆盖了
while((c=getchar())!='\n')
temp=(arcnode *)malloc(sizeof(arcnode));//把与该顶点相关的顶点的表结点连在一起
temp->num=locate(g,c);
rear->nextarc=temp;
rear=temp;
rear 和 temp 都是同类型结构体,他们的头指针相等了,会不会覆盖的
rear->nextarc=temp;
rear=temp;
这两行代码的意思是先让尾节点的nextarc指向temp,然后再将尾节点指针指向temp,相当于在链表尾部添加了一个节点。
没有覆盖一说,这里只有指针的赋值。
这段代码的意义是:先用temp指针malloc一个arcnode,然后将temp放到链表结尾(当然这里可能不是链表,但是rear应该是指示了一个连续结构的最后一个节点)。
rear(指向链表结尾) temp(利用temp创建一个新的arcnode)
↓ ↓
□ □
然后
rear(将temp赋值给rear指针,rear就指向了链表末尾)
↓
□→□(原来的尾节点的nextarc指针指向了新的尾节点)追问
让我慢理清思路先
追答rear指针是用来标识最后一个节点的。temp指针是用来指向malloc产生的arcnode节点的。
temp创建成功之后,就可以把temp指向的arcnode放到链表结尾了,操作如下:
先让temp链接到链表尾部,也就是让rear节点的nextarc指针指向temp。
然后rear节点这时候就需要指向新的最后一个节点啦,也就是将temp赋给rear,就相当于rear指向了temp指向的那个arcnode。
够清楚了吧?
#include <stdio.h>
#include <stdlib.h>
typedef struct node
int data;
struct node *next;
linknode,*link;
link creatlist() //创建链表
int a;
link H,P,r;
H=(link)malloc(sizeof(linknode)); //创建第一个节点,或者叫做首节点H
r=H; //用r指向H,r为移动的结构指针
a=15;//变量表示创建一个含有15个节点链表
while(a>0)
P=(link)malloc(sizeof(linknode)); //P为想插入的节点指针
P->data=a; //为p->data赋值
r->next=P; //注意现在的r->next实际就是H->next,让H的next指针指向下一个节点P
r=P;//再将r指针移动到最后的节点P
a--;
r->next=NULL; //最后节点的next指针为空
return H;//返回链表的起始节点
参考技术B 会不会是你理解错了,这只是建立了个头结点嘛,头结点的下一个指向自己而已追问
但是rear 和temp 相同喔, rear =temp 是什么意思,我搞不明白
追答我学数据结构很久了,rear =temp 我也有点忘了,但是temp只是一个结点,不是头结点
以上是关于c语言中如何把结构体中的char num[10]与数组中的char num2[10]比较数据啊?的主要内容,如果未能解决你的问题,请参考以下文章