Использование символа в строке для поиска строк данных печати
Итак, у меня есть множество структур, скажем, оценки учеников. Неопределенный список длин данных (загружаемых файлом) в формате student:test1:test2:lettergrade Я хочу иметь возможность "поиска", предлагая пользователю ввести буквенную оценку, и после нажатия Enter программа находит все ученик с этим письмом оценивает и печатает их.
Проведя некоторое исследование, я подумал, что, возможно, решение проблемы - 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;
}