12
12
13
13
/* functions */
14
14
int getLine (char [], int );
15
- void reverse (char [], char [], int );
16
- void emplace_reverse (char [], int );
15
+ void reverse (char []);
17
16
18
17
/* getLine function: read a line into s, return length */
19
18
int getLine (char s [], int lim )
@@ -33,22 +32,14 @@ int getLine(char s[], int lim)
33
32
return i ;
34
33
}
35
34
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 [] )
38
37
{
39
- int i ;
38
+ int i , j , len , temp ;
40
39
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 ;
52
43
53
44
for (i = 0 , j = len - 1 ; i < len / 2 ; ++ i , -- j ) {
54
45
temp = s [i ];
@@ -64,7 +55,7 @@ int main(void)
64
55
65
56
while ((len = getLine (line , MAXLINE )) > 0 ) {
66
57
line [-- len ] = '\0' ; /* remove newline character at the end */
67
- emplace_reverse (line , len );
58
+ reverse (line );
68
59
printf ("%s\n" , line );
69
60
}
70
61
return 0 ;
0 commit comments