Считать строку неизвестной длины - 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); }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , , - Объявление переменных:
- buf - указатель на строку, которая будет считывать ввод пользователя
- len - переменная для хранения размера строки
- Вывод приглашения для ввода строки
- Считывание строки с помощью функции getline. Функция возвращает -1 при ошибке чтения, в этом случае программа вызовет ошибку с помощью функции err
- Вывод количества символов в считанной строке, включая символ новой строки, с помощью функции strlen
- Вывод самой строки с помощью функции printf
- Освобождение памяти, выделенной под строку buf с помощью функции free
- Выход из программы с кодом 0, что означает успешное завершение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д