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