演習4-13 K&R プログラミング言語C

演習4-13

こちらの再帰は簡単に解けた。SICP 効果?

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

void reverse(char str[]);
void reverse_iter(char str[], int start, int end);

int main(void)
{
    char str[] = "hello, world!";

    printf("%s ", str);
    reverse(str);
    printf("=> %s\n", str);

    return 0;
}

void reverse(char str[])
{
    int i = 0;
    int j = strlen(str) - 1;
    reverse_iter(str, i, j);
}

void reverse_iter(char str[], int i, int j)
{
    char tmp;

    if (i < j) {
        tmp = str[j];
        str[j] = str[i];
        str[i] = tmp;
        reverse_iter(str, ++i, --j);
    }
}

実行結果

$ ./ex4-13
hello, world! => !dlrow ,olleh
プログラミング言語C 第2版 ANSI規格準拠
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
«
»