#include <stdio.h>
#define MAXLINE 1000
int getline(char line[], int maxline);
void copy(char to[],char from[]);
int main ()
{
int len,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;
}
int getline(char s[], int lim)
{
int c,i;
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
s[i]=c;
if (c == '\n'){
s[i]=c;
++i;
}
s[i]='\0';
return i;
}
void copy(char to[], char from[])
{
int i;
i=0;
while((to[i] = from[i])!='\0')
++i;
}
Uczę się z książki "Język ANSI C" i mam wielki problem, gdyż większość rzeczy albo omawiana jest pobieżnie albo wcale i nie mogę zrozumieć pewnych rzeczy (linijek) w tym programie.
Wyżej znajduje się cały kod, który został przepisany z książki, zaś poniżej będe wymieniał te rzeczy których nie rozumiem i byłbym wdzięczny za pomoc w zrozumieniu ich.
while ((len = getline(line,MAXLINE)) >0)
Co ta linijka konkretnie oznacza ?
Wiem, że to pętla, ale chodzi o to, że tablica 'line[]' równa się teraz 'line' ? I co to mi daje, bo nie mogę tego zrozumieć.
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
'lim-1' co to oznacza co to jest lim ? Musi mieć jakąś wartosć a nie widzę by program, bądź ja za pomocą klawiatury wproawdzał jakąś wartosć temu...