-3
我一直在努力解决如何在数组中使用结构并且不知道如何在代码中看到初始化数组的前三项。当我尝试打印或扫描数组的值时,我也会遇到错误,因为它说它们都是整数,即使我已将它们声明为字符串/字符。任何帮助将是伟大的,谢谢。构造和初始化数组
#include <stdlib.h>
#include <stdio.h>
#define MAXLEN 100
typedef struct{
char name; <<have now changed all to [MAXLEN+1]
char surname; <<
char UUN; <<
char department; <<
char gender;
int age;
} student_t;
int main(void){
student_t details[5];
int i, n;
details[0].name = "John"; <<should all the '=' be ',' instead?
details[0].surname = "Bishop"; <<do not understand how to initialize
details[0].UUN = "s1234";
details[0].department = "Inf";
details[0].gender = 'm';
details[0].age = 18;
details[1].name = "Lady";
details[1].surname = "Cook";
details[1].UUN = "s2345";
details[1].department = "Eng";
details[1].gender = 'f';
details[1].age = 21;
details[2].name = "James";
details[2].surname = "Jackson";
details[2].UUN = "s3456";
details[2].department = "Eng";
details[2].gender = 'm';
details[2].age = 17;
for(i = 3; i < 6; i++){
printf("Enter first name second name UUN department gender age: \n");
scanf(" %s %s %s %s %c %d", details[i].name, details[i].surname, details[i].UUN, details[i].department, details[i].gender, details[i].age);
}
for(n = 0; n < 6;n++){
printf("details: %s", details[n].name);
}
return EXIT_SUCCESS;
}
你的结构成员只是个别的'char'对象。你如何期望你的每个字符串适合一个'char'? – AnT
这里有一个提示:char只能包含一个字符。你想持有字符串。你会怎么做? – struthersneil
是的,但每次我把它声明为一个字符串错误出现在scanf中说它是char **并且期望一个字符串。如图所示,因为某种原因,这是阻止它的唯一方法 – string