diff options
author | Adam Carpenter <gitlab@53hor.net> | 2019-07-09 16:00:48 -0400 |
---|---|---|
committer | Adam Carpenter <gitlab@53hor.net> | 2019-07-09 16:00:48 -0400 |
commit | 39c0cbcc70aff47e17107826aa76cb525c83b122 (patch) | |
tree | df483af220a11aab49e0e3a76eea54f60efbd424 /ch1/too_long.c | |
parent | 583fc81152e120ec5873f8057f11a894bb8b0a91 (diff) | |
download | learning-c-39c0cbcc70aff47e17107826aa76cb525c83b122.tar.xz learning-c-39c0cbcc70aff47e17107826aa76cb525c83b122.zip |
ch2
Diffstat (limited to 'ch1/too_long.c')
-rw-r--r-- | ch1/too_long.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ch1/too_long.c b/ch1/too_long.c new file mode 100644 index 0000000..dcc6ed4 --- /dev/null +++ b/ch1/too_long.c @@ -0,0 +1,39 @@ +#include<stdio.h> + +#define MAXLENGTH 1000 + +int get_line(char line[], int maxlength); +void copy(char to[], char from[]); + +/* + * MAIN + * Print all lines larger than 80 characters. + */ +main() { + int len; // current line length + char line[MAXLENGTH]; // current input line + + while ((len = get_line(line, MAXLENGTH)) > 0) + if (len > 80) { + printf("%s", line); + } + return 0; +} + +/* + * GET_LINE + * Read STDIN into LINE up to MAXLENGTH and return its length. + * Returns the length of a the line. + */ +int get_line(char line[], int maxlength) { + int c, i; + + for (i = 0; i < maxlength - 1 && (c = getchar()) != EOF && c != '\n'; ++i) + line[i] = c; + if (c == '\n') { + line[i] = c; + ++i; + } + line[i] = '\0'; + return i; +} |