/* reverses input one line at a time */ #include #include #define MAXLINE 1000 void reverse(char line[]) { int i, j, k; char temp; for (k = 0; line[k] != '\0'; k++); /* find terminator */ k--; for (i = 0; i < k; i++) { for (j=k; j > i; j--) { temp = line[j]; line[j] = line[j-1]; line[j-1] = temp; } } } void reverser(char s[], int i, int len) { int c, j; j = len - (i + 1); if (i < j) { c = s[i]; s[i] = s[j]; s[j] = c; reverser(s, ++i, len); } } int main(void) { char c, line[MAXLINE]; int i = 0; while((c=getchar()) != EOF) { if (c != '\n' && i < MAXLINE-1) { line[i++] = c; } else { line[i] = '\0'; reverse(line); printf("%s\n", line); i = 0; } } return 0; }