>#define eof -1Это можно не определять и использовать EOF из stdio.h
> main() /* find longest line */
int main(int argc, char *argv[])
Также, перед использованием ф-ии getline() и copy() нужно их объявить явно или использовать прототип:
int getline(char s[], int lim);
void copy(char s1[], char s2[]);
> getline(s,lim) /* get line into s,return length */
> char s[];
> int lim;
int getline(char s[], int lim)
> for(i=0;i<lim-1 && (c=getchar())!=eof && c!='\n';++i)
Вы используете getchar() из стандартной библиотеки, а занечит должны подключить файл stdio.h
> copy(s1, s2) /* copy s1 to s2;
>
> assume s2 big enough */
> char s1[], s2[];
void copy(char s1[], char s2[])
Это то что бросилось в глаза с первого взгляда. Исправьте это и, если не будет работать, то пожалуйста приведите также сообщение с ошибками -- так нам будет легче вам помочь. (потому что телепаты всё ещё в отпуске ;)) )