Считать строку неизвестной длины - C (СИ)

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

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

Как на си считать строку неизвестной длины?

Решение задачи: «Считать строку неизвестной длины»

textual
Листинг программы
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char* buf = NULL;
    size_t len;
    
    puts("Input a line:");
    if(getline(&buf, &len, stdin) == -1 && ferror(stdin))
    err(1, "getline");
 
    printf("You've entered %u character(s) (including newline):\n%s", strlen(buf), buf);
    
    free(buf);
    
    exit(0);
}

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

  1. Подключение необходимых библиотек: , , ,
  2. Объявление переменных:
    • buf - указатель на строку, которая будет считывать ввод пользователя
    • len - переменная для хранения размера строки
  3. Вывод приглашения для ввода строки
  4. Считывание строки с помощью функции getline. Функция возвращает -1 при ошибке чтения, в этом случае программа вызовет ошибку с помощью функции err
  5. Вывод количества символов в считанной строке, включая символ новой строки, с помощью функции strlen
  6. Вывод самой строки с помощью функции printf
  7. Освобождение памяти, выделенной под строку buf с помощью функции free
  8. Выход из программы с кодом 0, что означает успешное завершение

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


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

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

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