learningc/chapters/2/exercises/shared/functions/getlines.c

25 lines
505 B
C

int getlines(char s[], int lim) {
int i, c;
for (i = 0;i < lim-1;) {
if ((c = getchar()) != '\n') {
if (c != EOF) {
s[i++] = c;
} else {break;}
} else {break;}
}
if (c == EOF) {
s[i] = '\0';
return EOF;
} else if (c == '\n') {
if (i < lim-1) {
s[i] = c;
s[i+1] = '\0';
} else {
s[lim-1] = '\0';
}
} else {
s[i] = '\0';
}
return i;
}