结构体的输入输出与一般的一样,但是不能整体对结构体进行输入输出,只能对其成员分个输入输出,比如结构体struct
student{
int
number;
char
C
语言中,结构体(struct)是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类.结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构.
结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问.
定义与声明
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量.
在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等.
在C语言中,定义结构体数组和定义结构体变量的方式类似;
例:
struct stu{
char*name;//姓名
int num;//学号
int age;//年龄
char group;//所在小组
float score;//成绩
扩展资料:
结构体数组的引用与引用一个结构体变量在原理上是一样的.只不过结构体数组中有多个结构体变量,我们只需利用for循环一个一个地使用结构体数组中的元素.
#includelt;stdio.hgt;
#includelt;string.hgt;
struct STU
{
int age;
char sex;
};
//函数声明,该函数的功能是输出学号最大的学生信息
int main(void)
int i;
printf("请输入第%d个学生的信息:",i+1);
scanf("%s%d%c%s",
stult;igt;.name,
stult;igt;
.age,stult;igt;
.sex,stult;
igt;.num);/*%c
前面要加空格,不然输入时会将空格赋给%c*/
}
OutputSTU(stu);
return 0;
struct STU stumax=stu[0];
int j;
if(strcmp(stumax.num,stu[j]
.num)lt;0)//strcmp函数的使用
stumax=stu[j];
printf("学生姓名:%s学生年龄:%d学生性别:%c学生学号:
%s\n",stumax.name,
stumax.age,stumax.
sex,stumax.num);
输出结果是:
参考资料:
百度百科——结构体
c语言的结构体是一组数据的组合,并不是简单的单一类型.所以在查找和输出的时候,均不能直接操作,而是要进行变通.
查找.
对于以某一项为关键字进行查找时,比如在结构体中有int型的成员a,要查找a为100的结构体变量,这时需要遍历每个结构体(数组、链表、或者其它任意形式),对每个元素的成员a值进行比较,符合的则表示查找成功.
对于结构体中元素较多,同时要对整个结构体每个元素都匹配才算查找到的特殊情况,可以使用memcmp的方式,整体进行比较,以减少代码量.不过这种情况较为少见,不过多描述.
输出.
对于结构体的输出,其实就是对其每一项,或者若干项成员变量的输出.
所以可以使用基本的输出函数,对每一项单独输出,输出中为了方便阅读,可以加一些说明文字.
如果对结构体输出有多处调用的需求,可以在将该功能封装为函数,供各个需要的函数调用.这样的好处是,当结构体的成员出现变化,或者结构体输出要求更改时,修改一处代码即可完成所有的输出修改,实现易于维护的效果.
程序没有你想的那么智能,那么你就要考虑以数组存的值为-1为活动结束标志,使得程序智能起来.那么限制条件就为stud[i].addr[j]!=-1即不会死循环,又不会输出多余的活动.
能说的也就这么多了,希望能对你有所帮助!
以上就是土嘎嘎小编为大家整理的c语言结构体用函数输出相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!