69,336
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char yes[]={'y','e','s','\0'};
char no[]={'n','o','\0'};
char na[20];
char ge[3];
char nu[8][13];
char ad[50];
int da[3];
typedef struct information{
char name[20];
char gender[3];
char number[8][13];
char address[50];
int date[3];
struct information *next;
} information;
void exchange(information *p,information *q)
{
char na2[20];
char ge2[3];
char nu2[8][13];
char ad2[50];
int da2[3];
int i,j;
#if 0
memcpy(na,q->name,sizeof(q->name));
memcpy(ge,q->gender,sizeof(q->gender));
memcpy(nu,q->number,sizeof(q->number));
memcpy(ad,q->address,sizeof(q->number));
memcpy(da,q->date,sizeof(q->date));
memcpy(na2,p->name,sizeof(p->name));
memcpy(ge2,p->gender,sizeof(p->gender));
memcpy(nu2,p->number,sizeof(p->number));
memcpy(ad2,p->address,sizeof(p->address));
memcpy(da2,p->date,sizeof(p->date));
memcpy(p->name,na,sizeof(na));
memcpy(p->gender,ge,sizeof(ge));
memcpy(p->number,nu,sizeof(nu));
strcpy(p->address,ad);//就是这一步出现错误,将ad的值赋给p->address结果链表内的值输出之后是乱码
memcpy(p->date,da,sizeof(da));
strcpy(q->name,na2);
strcpy(q->gender,ge2);
strcpy(q->address,ad2);
for(i=0;i<=7;i++){
for(j=0;j<=13;j++){
p->number[i][j]=nu2[i][j];
}
}
for(i=0;i<=2;i++){
p->date[i]=da2[i];
}
#else
memcpy(p, q, sizeof(information));
#endif
//printf("%s\n",ad);//这个是用来检查错误的
printf("%s\n", p->address);//这个是用来检查错误的
}