Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
oorrja
GitHub Repository: oorrja/learntosolveit
Path: blob/master/languages/cprogs/Ex_1.19_reversestr.c
1240 views
1
/**
2
* Exercise 1.19 - Write a function reverse that reverses the character
3
* string s; use it to write a program that reverses its input a line at a time.
4
*
5
**/
6
7
#include<stdio.h>
8
9
#define MAXLINE 1000
10
11
int mgetline(char line[], int lim);
12
13
void reverse(char rline[]);
14
15
16
int main(void)
17
{
18
int len;
19
char line[MAXLINE];
20
21
while((len = mgetline(line, MAXLINE)) > 0 )
22
{
23
reverse(line);
24
printf("%s",line);
25
}
26
27
return 0;
28
}
29
30
31
int mgetline(char s[],int lim)
32
{
33
int i,c;
34
35
for(i=0; i<lim-1 && (c=getchar()) != EOF && c != '\n'; ++i)
36
s[i] = c;
37
38
if( c == '\n')
39
{
40
s[i] = c;
41
++i;
42
}
43
s[i] = '\0';
44
45
return i;
46
}
47
48
49
void reverse(char rline[])
50
{
51
int i,j;
52
char temp;
53
54
for(i=0;rline[i]!='\0';++i)
55
;
56
57
--i;
58
59
if(rline[i]=='\n') --i;
60
61
j = 0;
62
63
while(j < i)
64
{
65
temp = rline[j];
66
rline[j] = rline[i];
67
rline[i] = temp;
68
--i;
69
++j;
70
}
71
}
72
73