計算機科学のブログ

C - 文字列 - 文字列理論 - 文字列, 逆順

Head First C ―頭とからだで覚えるCの基本David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の 2.5章(文字列 - 文字列理論)、p.97(コードマグネット)の解答を求めてみる。

Makefile

all: a.out
	./a.out

a.out: main.c
	cc main.c

コード

main.c

#include <stdio.h>
#include <string.h>
void print_reverse(char *s)
{
    size_t len = strlen(s);
    char *t = s + len - 1;
    while (t >= s)
    {
        printf("%c", *t);
        t--;
    }
    puts("");
}
int main()
{
    print_reverse("");
    print_reverse("a");
    print_reverse("ab");
    print_reverse("abcde");
    print_reverse("日本語");
}

入出力結果(Terminal, Zsh)

% make
cc main.c
./a.out

a
ba
edcba
??謜楗?
%