Exercise 2-4 (squeezes - Remove string chars from another string)

Chapter_2     Exercise_2-3     strcat Exercise_2-5







Exercise 2-4     K&R, p. 48


Exercise 2-4. Write an alternate version of squeeze(s1,s2) that deletes each character in s1 that matches any character in the string s2.




Note:  See also squeeze.




CONTENTS:     squeezes1.c     squeezes2.c




squeezes1.c         download


#include <stdio.h> // for printf(), scanf()

#define LENGTH 100 // max word length

void squeezes(char s[], char t[]); // remove all of t[] from s[]

int main()
{
char s1[LENGTH], s2[LENGTH];

printf("Type a word: ");
scanf("%s", s1);
printf("Type another word: ");
scanf("%s", s2);

printf("squeezes(%s, %s): ", s1, s2);
squeezes(s1,s2);
printf("%s\n", s1); // s2 unchanged

return 0;
}

void squeezes(char s[], char t[]) // remove all of t[] from s[]
{
int i, j, k;

for (i = 0; t[i] != '\0'; i++)
{
for (j = k = 0; s[j] != '\0'; j++)
{
if (s[j] != t[i]) {s[k++] = s[j];}
}
s[k] = '\0';
}
}
/*
gcc squeezes1.c -o squeezes1
./squeezes1
Type a word: abracadabra
Type another word: bro
squeezes(abracadabra, bro): aacadaa
*/











squeezes2.c         download


#include <stdio.h>

#define LENGTH 100 // max word length

void squeeze(char[], int); // remove all occurrences of a char from a string
void squeezes(char s[], char t[]); // remove all of t[] from s[]

int main()
{
char s1[LENGTH], s2[LENGTH];

printf("Type a word: ");
scanf("%s", s1);
printf("Type another word: ");
scanf("%s", s2);

printf("squeezes(%s, %s): ", s1, s2);
squeezes(s1,s2);
printf("%s\n", s1); // s2 unchanged

return 0;
}

void squeeze(char s[], int c) // remove all c from s[]
{
int i, j;

for (i = j = 0; s[i] != '\0'; i++)
{
if (s[i] != c) {s[j++] = s[i];}
}
s[j] = '\0';
}

void squeezes(char s[], char t[]) // remove all of t[] from s[]
{
int i;

for (i = 0; t[i] != '\0'; i++)
{
squeeze(s, t[i]);
}
}
/*
gcc squeezes2.c -o squeezes2
./squeezes2
Type a word: abracadabra
Type another word: bro
squeezes(abracadabra, bro): aacadaa
*/









Chapter_2     Exercise_2-3     strcat BACK_TO_TOP Exercise_2-5



Comments

Popular posts from this blog

Contents

Blogger Page Margins in Contempo