c的问题,请教高手!!!

来源:百度知道 编辑:UC知道 时间:2024/06/15 22:16:46
#include "stdio.h"
main()
{ struct c
{int x;
char y[10];
char z;
char w[20];
}

struct mp1
{int number;
char name[10];
char sex;
char add[20];
struct c next;

};

struct mp1 a;
a.number=3;
a.name="map1";
a.sex='m';
a.add="xinj";
a.next.x=4;
a.next.y="map2";
a.next.z='m';
a.next.w="xinj";

printf("No:%d\nname:%s\nsex:%c\nadd:%s\n\nNo:%d\nname:%s\nsex:%c\nadd:%s\n",a.number,a.name,a.sex,a.add,a.next.x,a.next.y,a.next.z,a.next.w);
}

哪做做了,都编译不了,谢谢高手,我刚学,最好能详细点,我知道这个里面问题挺多的,谢谢,了,必定加分!!
请问除了不能用a.add="map",外还有什么类似赋值的方法麽,我的意思是不用字符串操作函数比较简单的赋值方式有麽?

#include "stdio.h"
#include "string.h"
struct c //结构体声明在函数体外。
{int x;
char y[10];
char z;
char w[20];
};

struct mp1
{
int number;
char name[10];
char sex;
char add[20];
struct c next;
};

int main()
{
struct mp1 a;

a.number=3;
strcpy(a.name,"map1"); //字符串赋值不能直接用 = 。下同
a.sex='m';
strcpy(a.add,"xinj");
a.next.x=4;
strcpy(a.next.y,"map2");
a.next.z='m';
strcpy(a.next.w,"xinj");

printf("No:%d\nname:%s\nsex:%c\nadd:%s\n\nNo:%d\nname:%s\nsex:%c\nadd:%s\n",a.number,a.name,a.sex,a.add,a.next.x,a.next.y,a.next.z,a.next.w);
}

结构的定义最好放在main函数的外面,main函数内部也可以,但要有结束的分号
字符串赋值不能直接用等号,要用字符串操作函数

正确的如下:

#include "stdio.h"
#include "stri