- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验十四预处理命令结构体与字符串
实验十四 预处理命令、结构体与字符串
【目的与要求】结构体是个能够包含不同数据类型的一个结构,是一种能够自己定义的数据类型struct 结构类型名
{ 数据类型 数据项1;
数据类型 数据项2;
… …
数据类型 数据项n;
}; //注意此处定义时分号不能少
其中的结构类型名表明了一种新的构造数据类型,其中的数据项称为结构体的数据成员。
结构体变量定义
结构体变量定义的形式通常有如下三种方法:
(1)先定义结构体类型,再定义结构体类型变量:struct date
{ int day;
int month;
int year;
};
struct date time1,time2;
(2)定义结构体类型同时定义结构体类型变量:struct stu
{long int num;
char name[20];
char sex;
float score;
struct date time1; //此处结构的成员也是个结构体
}stu1,stu2;
(3)直接定义结构体类型变量:
struct
{char name[20]; / *通讯录姓名* /
char sex; / *性别* /
long telephone; / *电话* /
char address; / *住址* /
} person1,person2; / *定义该结构体类型变量* /
该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。
结构体变量成员的引用
结构体变量的成员引用形式为:结构体变量名.成员名
如time1.year=1980;是给结构体变量time1中的year变量赋上年份值;stu1.time1.year=1985;则是给student中time1成员中的year成员赋值。
【上机内容】
【一般示例】
【例1】
student,用于存储和显示一个学生的基本情况。程序如下:
#include stdio.h
struct stu /*学生信息结构类型:由学号、姓名、数学成绩和英语成绩共4项组成*/
{
char num[5];
char name[10];
int math;
int english;
};
main()
{
struct stu stu1={0001,张三,85,93};
printf(Num: %s\n,stu1.num);
printf(Name: %s\n,stu1.name);
printf(Math score is %d and English is %d\n,stu1.math,stu1.english);
}
【例】
#includestdio.h
#includestring.h
int main( )
{
char s1[20]=We all, s2[20],s3[30]; //定义3个字符数组
printf(s1=%s,strlen(s1)=%d\n,s1,strlen(s1)); //输出串s1的值及长度
printf(Input s2:); //提示输入s2串
gets(s2); //用gets函数输入可带空格的串
printf(s2=%s\n,s2); //用printf函数输出串s2
strcpy(s3,s1); //将串s1拷贝到串s3
strcat(s3,s2); //将串s2连接到s3后面
printf(s3=); //用puts输出串s3
puts(s3);
if (strcmp(s1,s2)0) //比较s1串和s2串的大小
printf(s1 is larger than s2\n); //s1串大于s2串
else if (strcmp(s1,s2)0)
printf(s1 is smaller than s2\n); //s1串小于s2串
else printf(s1 is equal to s2\n); //s1串等于s2串
strupr(s3);
文档评论(0)