C-结构和数组
时间:2020-02-23 14:32:01 来源:igfitidea点击:
在本教程中,我们将学习使用C编程语言将结构与数组一起使用。
在先前的教程中,我们已经介绍了数组和结构。
为给定的结构创建一个数组变量
在以下示例中,我们将创建一个"学生"结构来保存学生详细信息。
struct student { char firstname[64]; char lastname[64]; char id[64]; int score; };
在上一个教程中,我们创建了一个名为" std1"的" student"结构变量。
现在我们将创建一个学生结构数组变量stdArr
在下面的示例中,我们将创建一个学生结构数组变量" stdArr",以容纳3名学生的详细信息,因此数组的大小为3。
struct student stdArr[3];
访问结构数组变量的成员
要访问结构数组变量的成员,我们首先选择索引,然后将其作为目标。
在下面的示例中,我们选择结构数组变量" stdArr"的第一个元素,然后定位" firstname"成员。
stdArr[0].firstname
数组索引从0开始,因此,数组的第一个元素在索引0处。
用C编写程序以收集3名学生的详细信息并打印结果
在此示例中,我们将使用"学生"结构创建大小为3的数组变量stdArr,以容纳3名学生的详细信息。
#include <stdio.h> int main(void) { //creating a student structure template struct student { char firstname[64]; char lastname[64]; char id[64]; int score; }; //creating a student structure array variable struct student stdArr[3]; //other variables int i; //taking user input for (i = 0; i < 3; i++) { printf("Enter detail of student #%d\n", (i+1)); printf("Enter First Name: "); scanf("%s", stdArr[i].firstname); printf("Enter Last Name: "); scanf("%s", stdArr[i].lastname); printf("Enter ID: "); scanf("%s", stdArr[i].id); printf("Enter Score: "); scanf("%d", &stdArr[i].score); } //output for (i = 0; i < 3; i++) { printf("\nStudent #%d Detail:\n", (i+1)); printf("Firstname: %s\n", stdArr[i].firstname); printf("Lastname: %s\n", stdArr[i].lastname); printf("ID: %s\n", stdArr[i].id); printf("Score: %d\n", stdArr[i].score); } return 0; }
在上面的代码中,当使用整数值时,我们使用像&stdArr [i] .score一样的&
。
对于字符串输入,我们不需要"与"号,因此,我们有" std [i] .firstname"," std [i] .lastname"和" std [i] .id"。
Enter detail of student #1 Enter First Name: Bruce Enter Last Name: Wayne Enter ID: dc-01 Enter Score: 8 Enter detail of student #2 Enter First Name: Peter Enter Last Name: Parker Enter ID: mc-01 Enter Score: 9 Enter detail of student #3 Enter First Name: Tony Enter Last Name: Stark Enter ID: mc-02 Enter Score: 7 Student #1 Detail: Firstname: Bruce Lastname: Wayne ID: dc-01 Score: 8 Student #2 Detail: Firstname: Peter Lastname: Parker ID: mc-01 Score: 9 Student #3 Detail: Firstname: Tony Lastname: Stark ID: mc-02 Score: 7