Язык программирования C

Скачать в pdf «Язык программирования C»


Когда встречается строка длиннее, чем предыдущая самая длинная строка, ее нужно где-то сохранить. Поэтому нужно написать вторую функцию, сору, которая бы копировала новую строку в некое надежное место.


Наконец, нужна главная программа для управления работой get line и сору. Вот что получается в результате:


#include <stdio.h>


#define MAXLINE 1000    /* максимальная длина строки в потоке */


int getline(char line[], int maxline); void copy(char to[], char fromU);


/* вывод самой длинной строки в потоке */ 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-l && (c=getchar())!=EOF && c!=’n’; ++i) s[i] = c; if (c == ‘n’) { s[i] = c;


+ + i;

}


s [i] = ‘ ‘ ; return i;

}


/* copy: копирует строку ‘from’ в ‘to’; длина to считается достаточной */


void copy (char to[], char from[])

{


int i;
1


Функции get line и copy объявлены в начале программы, которую будем считать хранящейся в одном файле.


Функции main и get line обмениваются информацией через пару аргументов и возвращаемое значение. В get line аргументы объявляются в следующей строке: int getline(char s[], int lim)

Скачать в pdf «Язык программирования C»