PAGE / NUMPAGES
实验十一 预处理命令、结构体与字符串
【目的与要求】
结构体类型变量的定义和引用
掌握常用字符串函数的使用
掌握预处理命令
结构体是个能够包含不同数据类型的一个结构,是一种能够自己定义的数据类型,通常可用来定义表示整体信息的一条记录。资料个人收集整理,勿做商业用途
结构体类型定义
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】
【例8.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);资料个人收集整理,勿做商业用途
}
【例2】
字符串处理函数的应用。
#include
#include
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(s