From e8064efb940701215fb9c0576c997a13e7b67feb Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 20 Nov 2021 21:08:03 +0800 Subject: 1.18 --- 1/17.c | 53 ----------------------------------------------------- 1/18.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 53 deletions(-) delete mode 100644 1/17.c create mode 100644 1/18.c diff --git a/1/17.c b/1/17.c deleted file mode 100644 index ace507f..0000000 --- a/1/17.c +++ /dev/null @@ -1,53 +0,0 @@ -#include - -#define MAXLEN 1000 -#define TRUE 1 -#define FALSE 0 - -int getlineraw(char s[], int size); -void trim(char to[], char from[], int size); - -/* removes trailing blanks and tabs from input */ -int main(int argc, char *argv[]) { - int size; - char s[MAXLEN], trimmed[MAXLEN]; - - while ((size = getlineraw(s, MAXLEN)) > 0) { - trim(trimmed, s, size); - printf("%s\n", trimmed); - } - - if (size == -1) { - printf("exceeded max input size: %d\n", MAXLEN); - return 1; - } - - return 0; -} - -int getlineraw(char s[], int size) { - int c, i; - - for (i = 0; i < size - 1 && (c = getchar()) != EOF && c != '\n'; i++) - s[i] = c; - - return c != '\n' && c != EOF ? -1 : i; -} - -void trim(char to[], char from[], int size) { - int i, c, trimmed; - - trimmed = FALSE; - - for (i = size - 1; i >= 0; i--) { - if (!trimmed) { - c = from[i]; - if (c != ' ' && c != '\t') { - to[i] = c; - trimmed = TRUE; - } - } else { - to[i] = from[i]; - } - } -} \ No newline at end of file diff --git a/1/18.c b/1/18.c new file mode 100644 index 0000000..ace507f --- /dev/null +++ b/1/18.c @@ -0,0 +1,53 @@ +#include + +#define MAXLEN 1000 +#define TRUE 1 +#define FALSE 0 + +int getlineraw(char s[], int size); +void trim(char to[], char from[], int size); + +/* removes trailing blanks and tabs from input */ +int main(int argc, char *argv[]) { + int size; + char s[MAXLEN], trimmed[MAXLEN]; + + while ((size = getlineraw(s, MAXLEN)) > 0) { + trim(trimmed, s, size); + printf("%s\n", trimmed); + } + + if (size == -1) { + printf("exceeded max input size: %d\n", MAXLEN); + return 1; + } + + return 0; +} + +int getlineraw(char s[], int size) { + int c, i; + + for (i = 0; i < size - 1 && (c = getchar()) != EOF && c != '\n'; i++) + s[i] = c; + + return c != '\n' && c != EOF ? -1 : i; +} + +void trim(char to[], char from[], int size) { + int i, c, trimmed; + + trimmed = FALSE; + + for (i = size - 1; i >= 0; i--) { + if (!trimmed) { + c = from[i]; + if (c != ' ' && c != '\t') { + to[i] = c; + trimmed = TRUE; + } + } else { + to[i] = from[i]; + } + } +} \ No newline at end of file -- cgit v1.2.3