Как я могу выбрать опцию из ввода fgets в C?

#c #fgets

Вопрос:

Итак, у меня есть этот код:

 printf("S: Searchn");  printf("A: Addn");  printf("D: Deleten");  printf("Q: Quitn");  printf("nYour choice: ");   while (fgets(line, MAXLINE, stdin) amp;amp; once == 1)  {   printf("Option: %sn", line);  once  ;  }   

И вот тут — то я и начинаю бороться:

 if (line == 's')  {  printf("option s function here");  } else if (line == 'a')  {  printf("option a function here...");  } /* and so on */  

Это не работает, и я пытался это исправить, но ничего из того, что я пробовал, не сработало. Как я могу написать этот последний фрагмент кода, чтобы иметь возможность выбрать опцию из ввода fgets?

Комментарии:

1. if (line[0] == 's') проверит, является ли первый символ строки 's' . Возможно, вам также захочется принять прописные буквы, так как в приглашении отображаются параметры в верхнем регистре. В этом случае if (line[0] == 's' || line[0] == 'S') допускается верхний или нижний регистр.

2. Что вы хотите, чтобы ваш код делал, если кто-то вводит «глупо» вместо «s»?

3. @JeffHolt Я сейчас не думаю об ошибках, я просто предполагаю, что ввод всегда будет правильным

4. @user3386109 если я попытаюсь распечатать строку[0], в ней будет указано ошибка сегментации

5. Вы захотите показать код печати, иначе только образованное предположение расскажет вам, почему ваш код вызывает сигсегвариант.