Как напечатать n-й член строки, используя функцию scanf? - PullRequest
0 голосов
/ 08 апреля 2019

Консоль ничего не сделает после того, как пользователь ввел строку.

У меня есть код для работы с использованием char string="enteraword" и удаления всей функции printf и scanf, однако янужен код для работы с scanf функцией.

#include <stdio.h>
#include <string.h>

int main()
{
  char* string;
  printf("Enter a word: ");
  scanf("%s", string);
  char c=string[1];
  printf("The second letter in %s is %c", string, c);
  return 0;
}

1 Ответ

1 голос
/ 08 апреля 2019

Этот код имеет неопределенное поведение, вы передаете неинициализированный указатель на scanf(), запрашивая его сохранение строки там.

Кроме того, помните, что %s остановится на пустом месте, поэтому очень неясно, что здесь означают термины.

Попробуйте например:

char string[1024];
if(scanf("%1023s", string) == 1 && string[0] != '\0')
{
  const char c = string[1];
  printf("The second letter of '%s' is '%c'\n", string, c);
}
...