所以我有一系列结构,比如说学生成绩。未确定长度的数据列表(由文件加载),格式为 student:test1:test2:lettergrade 我希望能够通过提示用户输入字母等级来“搜索”,然后按回车键,程序会找到所有学生使用该字母等级并打印出来。
在做了一些研究之后,我认为也许做一个 strrchr 将是解决方案。但除了得出这个结论之外,我有点不知所措......有人可以在这里指出我正确的方向吗?
这是我到目前为止尝试过的...当我尝试运行它时,在我输入字母等级进行搜索后,我的程序崩溃了。
void gradeLetter (STUREC records[], int count)
{
int j;
char letter;
int s;
int i;
printf("Enter letter grade you wish to view: ");
scanf("%s", letter);
for(j = 0; j < count; j++)
{s = strrchr (records[count].grade, "letter");
if (s != NULL)
{
printf("\n+---------------------------+--------+--------+--------+--------+--------+--------+---------+-------+\n");
printf("| Student Name | ID | Test 1 | Test 2 | Proj 1 | Proj 2 | Proj 3 | Average | Grade |\n");
printf("+---------------------------+--------+--------+--------+--------+--------+--------+---------+-------+\n");
for (i = 0; i < count; i++)
{
int count = printf( "| %s, %s", records[i].lname, records[i].fname );
if ( count < NAME_LEN )
printf( "%*s", NAME_LEN - count, "" ); printf ("| %-7.6d| %4d | %4d | %4d | %4d | %4d | %6.2f | %-2s |\n", records[i].id, records[i].score1,
records[i].score2, records[i].score3, records[i].score4, records[i].score5,
records[i].ave, records[i].grade);
}
printf("+---------------------------+--------+--------+--------+--------+--------+--------+---------+-------+\n");
}
}
return 0;
}