Skip to content

Commit f563fbf

Browse files
committed
provide only one reverse functions
The question asks for reverse(s). Accordingly, reverse(s, len) and emplace_reverse(s, len) were removed and replaced by reverse(s).
1 parent f788e62 commit f563fbf

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

chapter01/1-19.c

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212

1313
/* functions */
1414
int getLine(char [], int);
15-
void reverse(char [], char [], int);
16-
void emplace_reverse(char [], int);
15+
void reverse(char []);
1716

1817
/* getLine function: read a line into s, return length */
1918
int getLine(char s[], int lim)
@@ -33,22 +32,14 @@ int getLine(char s[], int lim)
3332
return i;
3433
}
3534

36-
/* reverse function: copy the charaters of s1 into s2 in reverse order */
37-
void reverse(char s1[], char s2[], int len)
35+
/* reverse: reverses s's charaters in-place. */
36+
void reverse(char s[])
3837
{
39-
int i;
38+
int i, j, len, temp;
4039

41-
--len; /* skip the null character '\0' */
42-
for (i = 0; s1[i] != '\0'; ++i, --len)
43-
s2[len] = s1[i];
44-
45-
s2[i] = '\0';
46-
}
47-
48-
/* emplace_reverse: reverses s's charaters in-place. */
49-
void emplace_reverse(char s[], int len)
50-
{
51-
int i, j, temp;
40+
len = 0;
41+
for (i = 0; s[i] != '\0'; ++i)
42+
++len;
5243

5344
for (i = 0, j = len - 1; i < len / 2; ++i, --j) {
5445
temp = s[i];
@@ -64,7 +55,7 @@ int main(void)
6455

6556
while ((len = getLine(line, MAXLINE)) > 0) {
6657
line[--len] = '\0'; /* remove newline character at the end */
67-
emplace_reverse(line, len);
58+
reverse(line);
6859
printf("%s\n", line);
6960
}
7061
return 0;

0 commit comments

Comments
 (0)