#include <stdlib.h>
#include <string.h>

const char *string_reverse(const char *input) {
    static char *output = NULL;
    int i, len;

    if (output != NULL) free(output);

    if (input == NULL) return NULL;

    len = strlen(input);
    output = malloc(len + 1);

    for (i = 0; input[i]; i++)
        output[len - i - 1] = input[i];
    output[len] = '\0';

    return output;
}