From 552bc70b77d4fca54929b46190128721b93d887c Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Tue, 23 Jul 2019 12:09:24 -0400 Subject: Cleaned up directory. --- ch2/2-04.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ch2/2-04.c (limited to 'ch2/2-04.c') diff --git a/ch2/2-04.c b/ch2/2-04.c new file mode 100644 index 0000000..3f122bb --- /dev/null +++ b/ch2/2-04.c @@ -0,0 +1,43 @@ +#include + + +void squeeze_char(char s[], char c) { + int i; + int j; + + for (i = j = 0; s[i] != '\0'; i++) + if (s[i] != c) + s[j++] = s[i]; + + s[j] = '\0'; +} + + +void squeeze_str(char s1[], char s2[]) { + int i; + + for (i = 0; s2[i] != '\0'; ++i) + squeeze_char(s1, s2[i]); +} + + +void squeeze_all(char s1[], char s2[]) { + int i; + int j; + int 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'; + } +} + + +int main() { + char squeezed[] = "abracadabra"; + squeeze_all(squeezed,"abc"); + printf("%s\n", squeezed); +} -- cgit v1.2.3