Использование символа в строке для поиска строк данных печати

Итак, у меня есть множество структур, скажем, оценки учеников. Неопределенный список длин данных (загружаемых файлом) в формате 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;
}

0 ответов

Другие вопросы по тегам