diff options
| author | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-26 12:42:14 +0800 |
|---|---|---|
| committer | Sadeep Madurange <smadurange@users.noreply.github.com> | 2021-12-26 12:42:14 +0800 |
| commit | b392ca9be3da36620092f33e055e59b2f8da6c54 (patch) | |
| tree | 783c23965c114b207fc2c54ca411b0c0962f254c | |
| parent | 7b7464f16cd4fe421851207e680d3a255e0e5373 (diff) | |
| download | k&r-exercises-b392ca9be3da36620092f33e055e59b2f8da6c54.tar.gz | |
4.13
| -rw-r--r-- | 4/13.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -0,0 +1,32 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define MAXLEN 1000 + +/* Reverses string in place using recursion */ +void reverse(char[], int, int); + +int main(int argc, char *argv[]) { + char *s; + size_t n; + + s = malloc(MAXLEN); + n = sizeof(s); + + getline(&s, &n, stdin); + reverse(s, 0, strlen(s) - 2); + printf("\t%s\n", s); + + free(s); + return 0; +} + +void reverse(char s[], int i, int j) { + if (i < j) { + reverse(s, i + 1, j - 1); + s[i] = s[i] ^ s[j]; + s[j] = s[i] ^ s[j]; + s[i] = s[i] ^ s[j]; + } +}
\ No newline at end of file |
