Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
oorrja
GitHub Repository: oorrja/learntosolveit
Path: blob/master/languages/cprogs/Ex_3.3_expand.c
1240 views
1
/* expand: expand short hand notation in s1 into string s2. */
2
3
#include<stdio.h>
4
#define MAXLINE 100
5
6
int mgetline(char s[],int maxlimit);
7
void expand(char s1[],char s2[]);
8
9
int main(void)
10
{
11
char s1[MAXLINE],s2[MAXLINE];
12
13
mgetline(s1,MAXLINE);
14
15
expand(s1,s2);
16
17
printf("%s",s2);
18
19
return 0;
20
}
21
22
int mgetline(char s[],int lim)
23
{
24
int i,c;
25
26
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
27
s[i]=c;
28
29
if(c=='\n')
30
s[i++]=c;
31
32
s[i]='\0';
33
}
34
35
void expand(char s1[],char s2[])
36
{
37
int i,j,c;
38
39
i=j=0;
40
41
while((c=s1[i++]) != '\0')
42
if(s1[i]=='-' && s1[i+1] >=c)
43
{
44
i++;
45
while(c<s1[i])
46
s2[j++]=c++;
47
}
48
else
49
s2[j++]=c;
50
51
s2[j]='\0';
52
}
53
54
55