Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
oorrja
GitHub Repository: oorrja/learntosolveit
Path: blob/master/languages/cprogs/Ex_2.4_squeezess.c
1240 views
1
/**
2
* Exercise 2.4
3
*
4
* Let us write a version of squeeze(s1,s2) that deletes each
5
* character in the string 1 that matches any character in the string s2
6
*
7
**/
8
9
#include<stdio.h>
10
#define MAXLINE 1000
11
12
int mgetline(char line[],int maxline);
13
void squeeze(char s1[],char s2[]);
14
15
int main(void)
16
{
17
char s1[MAXLINE],s2[MAXLINE];
18
19
putchar('s');
20
putchar('1');
21
mgetline(s1,MAXLINE);
22
23
putchar('s');
24
putchar('2');
25
mgetline(s2,MAXLINE);
26
27
squeeze(s1,s2);
28
29
printf("%s",s1);
30
31
return 0;
32
}
33
34
int mgetline(char s[],int lim)
35
{
36
int i,c;
37
38
for(i=0;i<lim-1 && (c=getchar())!=EOF && c != '\n';++i)
39
s[i] = c;
40
41
if(c == '\n')
42
s[i++] = c;
43
44
s[i] = '\0';
45
}
46
47
void squeeze(char s1[],char s2[])
48
{
49
int i,j,k;
50
k=0;
51
52
for(i=0;s1[i]!='\0';++i)
53
{
54
for(j=0; (s1[i]!=s2[j]) && s2[j]!='\0' ;++j)
55
;
56
if(s2[j]=='\0')
57
s1[k++] = s1[i];
58
}
59
60
s1[k]='\0';
61
}
62
63
64