Снятие ограничения на размер вводимой строки (C & R, упражнение 1.16)

Модератор: Модераторы разделов

Аватара пользователя
SilentMan
Сообщения: 228
Статус: %_%
ОС: Arch Linux

Снятие ограничения на размер вводимой строки

Сообщение SilentMan »

сам хз что тут можно сделать. то что пробовал - не работает.

Код: Выделить всё

#include <stdio.h>
#define MAXLINE 1000 /* максимальный размер вводимой строки */

int getline(char line[], int MAXLINE);
void copy(char to[], char from[]);

/* печать самой длинной строки */
main()
{
    int len; /* длина текущей строки */
    int max; /* длина максимальной из просмотренных строк */
    char line[MAXLINE]; /* текущая строка */
    char longest[MAXLINE]; /* самая длинная строка */

    max = 0;
    while (len = getline(line, MAXLINE)) > 0)
        if (len > max) {
            max = len;
            copy(longest, line);
        }
    if (max > 0) /* была ли хоть одна строка? */
        printf(“%s”, longest);
    return 0;
}


/* getline: читает строку в s, возвращает длину */
int getline(char s[], int lim)
{
    int c, i;

    for (i = 0; i < lim-1 && (c = getchar()) != EOF && с != '\n'; ++i)
        s[i] = c;
    if (c == '\n') {
        s[i] = c;
        ++i;
    }
    s[i] = '\0';
    return i;
}

/* copy: копирует из 'from' в 'to'; to достаточно большой */
void copy(char to[], char from[])
{
    int i;

    i = 0;
    while ((to[i] = from[i]) != '\0')
        ++i;
}


Упражнение 1.16. Перепишите main предыдущей программы так, чтобы она могла печатать самую длинную строку без каких-либо ограничений на ее размер.
Registered Linux user #451481
Спасибо сказали:
Аватара пользователя
ZyX
Сообщения: 355
ОС: Gentoo

Re: Снятие ограничения на размер вводимой строки

Сообщение ZyX »

man realloc. По-другому, по-моему, никак.
Спасибо сказали:
Аватара пользователя
SilentMan
Сообщения: 228
Статус: %_%
ОС: Arch Linux

Re: Снятие ограничения на размер вводимой строки

Сообщение SilentMan »

Аргх, придется мне искать английскую версию книги. ибо перевод неправилен.
Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text.
Registered Linux user #451481
Спасибо сказали: