Как пользоваться scanf для строк - C (СИ)

Узнай цену своей работы

Формулировка задачи:

хоть убей не могу понять как пользоваться scanf для строк, запарило одни ошибки выдает... пишу:
char *str;
scanf("%s", str);
во первых если не написать char *str = ""; выдает ошибку "Run-Time Check Failure #3 - The variable 'Str' is being used without being initialized." нахера ее инициализировать это бред, так не должно быть имхо... во вторых даже если написал, выдает при считывании ошибку "Необработанное исключение в "0x102ddd6f (msvcr100d.dll)" в "test.exe": 0xC0000005: Нарушение прав доступа при записи "0x0041573c"." тоже вообще не понятно с какого перепуга... запарился, вроде так просто и такой гемор... че за фигня хз...

Решение задачи: «Как пользоваться scanf для строк»

textual
Листинг программы
#define BUFSIZE 100
...
char str[BUFSIZE];
fgets(str, BUFSIZE-1, stdin);

Объяснение кода листинга программы

  1. Объявлена константа BUFSIZE, которая определяет максимальный размер буфера в 100 символов.
  2. Объявлен массив типа char под именем str с размером BUFSIZE.
  3. В функцию fgets() передаются три аргумента:
    • str - указатель на начало массива, в который будет записан ввод.
    • BUFSIZE-1 - размер буфера, уменьшенный на 1, так как размер включает нулевой символ.
    • stdin - стандартный ввод, с которого считываются данные. Функция fgets() считывает данные из стандартного ввода до конца строки или до символа новой строки (если он не является последним символом ввода), сохраняя все символы, включая символ новой строки, в массиве str. При достижении границы буфера, функция оставляет символ новой строки в буфере и возвращает его как знак конца строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5
Похожие ответы