Blame


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