首页 > 解决方案 > 是否有一些特定的方法可以访问 C 多维数组中的字符串?

问题描述

我是 C 新手,我正在尝试实现一个结构数组。但是由于某种原因,当我尝试通过将数组结构打印到控制台来访问数组结构中的数据时,我似乎无法理解它,它根本不会执行。这是在windows环境下发生的,所以我改了,去了linux。它只是提出分段错误并停止。我已经四处寻找,似乎我的语法是正确的,但我似乎无法摆脱错误。我访问的一个网站是https://www.javatpoint.com/array-of-structures-in-c但我的代码仍然无法正常工作。这是我的 C 文件。

#include <stdio.h>
#include <string.h>

struct student {
  char registration_number[15];
  char forename[20];
  char surname[25];
  char department[60];
  char gender;
};

int main(void) { 
  struct student student_record[5];
  int i;
  for (i = 0; i < 5; i++) {
    printf("Student %i", i);
    printf("\nInput student forename: ");
    scanf("%s",&student_record[i].forename);
    printf("\nInput student surname: ");
    scanf("%s",&student_record[i].surname);
    printf("\nInput student registration number: ");
    scanf("%s",&student_record[i].registration_number);
    printf("\nInput student department: ");
    scanf("%s",&student_record[i].department);
    printf("\nInput student gender: ");
    scanf("%s",&student_record[i].gender);
    printf("\n");
  }

  printf("Reg No. \t First Name \t Last Name \t Gender \t Department \n");
  for (int i = 0; i < 5; i++) {
    printf("%s \t %s \t %s \t %s \t %s \n", student_record[i].registration_number, student_record[i].forename, student_record[i].surname, student_record[i].gender, student_record[i].department );
  }
} 

任何帮助,将不胜感激。

标签: arraysc

解决方案


scanf("%s",&student_record[i].gender); =>scanf("%c",&student_record[i].gender);

printf("%s \t %s \t %s \t %c \t %s \n", /*cut*/, student_record[i].gender, student_record[i].department );

推荐阅读