Commit Diff


commit - ce680abd0aecc35c3967e6b940d84c652876e88e
commit + 93cf4d1819cdeaafea9da8c38d283e5e15e6ba77
blob - /dev/null
blob + d04b7ca3f5c8307fea7bc5561d50099c6f058b84 (mode 644)
--- /dev/null
+++ 1-17.c
@@ -0,0 +1,36 @@
+/* 1-17 Write a program to print all input lines that are longer than 80
+ * characters. */
+
+#include <stdio.h>
+
+#define MAXLINE 1000		/* maximum input line size */
+
+int getlin(char line[], int maxline);
+
+/* print all lines greater than 80 chars */
+int main() {
+	int len;				/* current line length */
+	const int min = 81;		/* minimum length line */
+	char line[MAXLINE];		/* current input line */
+
+	while ((len = getlin(line, MAXLINE)) > 0) {
+		if (len >= min) {
+			printf("%s", line);
+		}
+	}
+	return 0;
+}
+
+/* getlin: read a line into s, return length */
+int getlin(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;
+}