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

char* reverse(const char* str) {
    char *_str = strdup(str); // free!!

    unsigned long len = strlen(_str);
    if(len == 1){
        return _str;
    }
    
    char *ret = (char*) malloc(256*sizeof(char)); //free!!
    
    char x = _str[len-1];
    _str[len-1] = '\0';
    char* xs = _str;
    
    char *upperRet = reverse(xs);
    sprintf(ret, "%c%s", x, upperRet);
    
    free(upperRet);
    free(_str);

    return ret;
}

int main() {
    char *result = reverse("ABCD");
    printf("%s\n", result);
    free(result);

    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: