Blob


1 /*
2 * 2-4. Write an alternate version of squeeze(s1, s2) that deletes each
3 * character in s1 that matches any character in the string s2.
4 */
5 #include <stdio.h>
7 void squeeze(char s1[], char s2[]);
8 char * strchr(const char *s, int c);
10 main () {
11 char haystack[] = "The quick brown fox jumped over the lazy dog.";
12 squeeze(haystack, "a");
13 printf("a: %s\n", haystack);
14 squeeze(haystack, "b");
15 printf("b: %s\n", haystack);
16 squeeze(haystack, "c");
17 printf("c: %s\n", haystack);
18 squeeze(haystack, "d");
19 printf("d: %s\n", haystack);
20 squeeze(haystack, "e");
21 printf("e: %s\n", haystack);
22 squeeze(haystack, "f");
23 printf("f: %s\n", haystack);
24 squeeze(haystack, "g");
25 printf("g: %s\n", haystack);
26 squeeze(haystack, "h");
27 printf("h: %s\n", haystack);
28 squeeze(haystack, "i");
29 printf("i: %s\n", haystack);
30 squeeze(haystack, "j");
31 printf("j: %s\n", haystack);
32 squeeze(haystack, "k");
33 printf("k: %s\n", haystack);
34 }
36 void squeeze(char s1[], char s2[]) {
37 int i, j;
38 for (i = j = 0; s1[i] != '\0'; ++i) {
39 if (!strchr(s2, s1[i])) {
40 s1[j++] = s1[i];
41 }
42 }
43 s1[j] = '\0';
44 }
46 char * strchr(const char *s, int c) {
47 int i;
48 for (i = 0; *(s+i) != c; ++i)
49 if (*(s+i) == '\0')
50 return 0;
51 return s+i;
52 }