Namara

Code daily. Without assist.

Today's code

reverse.c

#include <string.h>

void reverse(char *s) {
    /* write this: reverse s in place, no extra buffer */
}

Implement reverse so it reverses a NUL-terminated string in place.

Reference
void reverse(char *s) {
    size_t len = strlen(s);
    for (size_t i = 0, j = len - 1; i < j; i++, j--) {
        char tmp = s[i];
        s[i] = s[j];
        s[j] = tmp;
    }
}

Two pointers closing in from both ends. This is a reference implementation, not the only correct one — compare it against your own.