From bdc39e9353244eb5ee665273b86bc3c5a120c030 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Wed, 4 Feb 2026 12:00:07 +0800 Subject: ch01-18: remove trailing blanks and tabs from each line of input --- ch01/ex18-rtrim.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 ch01/ex18-rtrim.c (limited to 'ch01/ex18-rtrim.c') diff --git a/ch01/ex18-rtrim.c b/ch01/ex18-rtrim.c new file mode 100644 index 0000000..b01d2ef --- /dev/null +++ b/ch01/ex18-rtrim.c @@ -0,0 +1,54 @@ +#include +#define MAXLINE 1000 /* maximum input line size */ + +int getln(char line[], int maxline); +int rtrim(char line[], int len); + +/* remove trailing blanks and tabs from each line of input */ +int main() +{ + int len; /* current line length */ + char line[MAXLINE]; /* current input line */ + + while ((len = getln(line, MAXLINE)) > 0) + if ((len = rtrim(line, len)) > 0) + printf("%s", line); + return 0; +} + +/* getln: read a line into s, return length */ +int getln(char s[], int lim) +{ + int c, i; + + for (i=0; i 0 && (s[len-1] == ' ' || s[len-1] == '\t')) + --len; + + if (nl == 1) { + s[len] = '\n'; + ++len; + } + + s[len] = '\0'; + + return len; +} -- cgit v1.2.3