From 0fe4bd42cf8bf4c9a5aac177551b9390657c1632 Mon Sep 17 00:00:00 2001 From: Mariano Uvalle Date: Mon, 21 Sep 2026 17:54:31 -0700 Subject: [PATCH] chore: double.c from chap1 --- chap1/double.c | 20 ++++++++++++++++++++ chap1/example.txt | 3 +++ chap1/main | Bin 0 -> 16752 bytes 3 files changed, 23 insertions(+) create mode 100644 chap1/example.txt create mode 100755 chap1/main diff --git a/chap1/double.c b/chap1/double.c index 78d6e41..2778cd7 100644 --- a/chap1/double.c +++ b/chap1/double.c @@ -2,10 +2,12 @@ #include #include #include +#include int linenum; int getword(FILE *, char *, int); +void doubleword(char *, FILE *); int main(int argc, char *argv[]) { int i; @@ -27,6 +29,7 @@ int main(int argc, char *argv[]) { return EXIT_SUCCESS; } +// getword reads a word from fp into buf, returning true if it was able to do so. int getword(FILE *fp, char *buf, int size) { int c; c = getc(fp); @@ -50,3 +53,20 @@ int getword(FILE *fp, char *buf, int size) { ungetc(c, fp); return buf[0] != '\0'; } + +void doubleword(char *name, FILE *fp) { + char prev[128], word[128]; + + linenum = 1; + prev[0] = '\0'; + while (getword(fp, word, sizeof word)) { + if (isalpha(word[0]) && strcmp(prev, word) == 0) + // word is a duplicate + { + if (name) + printf("%s:", name); + printf("%d: %s\n", linenum, word); + } + strcpy(prev, word); + } +} diff --git a/chap1/example.txt b/chap1/example.txt new file mode 100644 index 0000000..6a9dba2 --- /dev/null +++ b/chap1/example.txt @@ -0,0 +1,3 @@ +hey there +it's been a very very long +time since diff --git a/chap1/main b/chap1/main new file mode 100755 index 0000000000000000000000000000000000000000..1829119401e9c0abf747d2447ec4301ec993872c GIT binary patch literal 16752 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 literal 0 HcmV?d00001