Namara

毎日コード。手助けなし。

2026-08-21

reverse.c

#include <string.h>

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

NUL終端文字列をその場で反転するように、reverseを実装してください。

参考実装
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;
    }
}

両端から中央に向かって閉じていく、2つのポインタを使う方法です。これはあくまで参考実装であり、唯一の正解ではありません — 自分の実装と見比べてみてください。