Path: blob/master/languages/cprogs/Ex_4.13_reverse_string.c
1240 views
/* a recursive version of revese(s); the string reverse function */12#include<stdio.h>3#include<string.h>45#define MAXLINE 10067int mgetline(char line[],int maxline);8void reverse(char s[]);910int main(void)11{12char s[MAXLINE];1314mgetline(s,MAXLINE);1516reverse(s);1718printf("%s",s);1920return 0;21}2223int mgetline(char s[],int lim)24{25int i,c;2627for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)28s[i] = c;2930if(c=='\n')31s[i++]='\n';3233s[i]='\0';34}3536void reverse(char s[])37{38void reverser(char s[],int i,int len);3940reverser(s,0,strlen(s));41}4243/* reverser: reverse string s in place; recursive */4445void reverser(char s[],int i,int len)46{47int c,j;4849j = len - (i + 1);5051if( i < j )52{53c = s[i];54s[i] = s[j];55s[j] = c;5657reverser(s,++i,len);58}59}60616263