From 34e464a900517cf3b2923b14b28fd16dbbc179d6 Mon Sep 17 00:00:00 2001 From: ObiRAM Date: Thu, 29 Aug 2019 12:14:10 +0100 Subject: [PATCH] Update squeeze.c simpler solution to squeeze() that actually works --- Chapter2/Exercise 2-04/squeeze.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/Chapter2/Exercise 2-04/squeeze.c b/Chapter2/Exercise 2-04/squeeze.c index e3eeffc..02ad749 100644 --- a/Chapter2/Exercise 2-04/squeeze.c +++ b/Chapter2/Exercise 2-04/squeeze.c @@ -43,22 +43,15 @@ int get_line(char s[], int lim) return l; } -/* This implementation is a bit more complicated*/ -void squeeze(char s1[], char s2[]) -{ - int i, j, k; - - i = 0; - while (s2[i] != '\0') { - j = 0; - while (s1[j] != '\0') { - if (s1[j] == s2[i]) { - k = j; - while ((s1[k] = s1[++k]) != '\0') - ; - } else - ++j; - } - ++i; - } -} \ No newline at end of file +void squeeze(char s1[], char s2[]) + +{ + int i, j, k; + for (k = 0; s2[k] != '\0'; k++){ + for (i = j = 0; s1[i] != '\0'; i++) + if (s1[i] != s2[k]) + s1[j++] = s1[i]; + s1[j] = '\0'; + + } +}