このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/627
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  キーボードから入力した文字列を逆順に出力するプログラムを作成したい。 
#  次の2通りの方法でそれぞれプログラム中の空欄を埋め完成させよ。 
#  (1) 配列を使う (ポインタは使ってはならない) 
#  (2) ポインタを使う (配列を使ってはならない) 
#   
#  #include<stdio.h> 
#  int main( void ) { 
#  char str[256], *p ; 
#  int i ; 
#  scanf("%s", str) ; 
#  p = str ; 
#  [この部分を記述せよ] 
#  return 0 ; 
#   

'キーボードから入力した文字列を逆順に出力する' :-
        get_line(Line),
        atom_chars(Line,Chars),
        reverse(Chars,_逆順の文字ならび),
        atom_chars(_逆順文字列,_逆順の文字ならび),
        writef('%t\n',[_逆順文字列]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'キーボードから入力した文字列を逆順に出力する' :-
        文字を改行まで読み込む('',_逆順文字列),
        writef('%t\n',[_逆順文字列]).

文字を改行まで読み込む(_文字列1,_文字列) :-
        get_char(_文字),
        \+(_文字='\n'),
        atom_concat(_文字,_文字列1,_文字列2),
        文字を改行まで読み込む(_文字列2,_文字列),!.
文字を改行まで読み込む(_文字列,_文字列).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'キーボードから入力した文字列を逆順に出力する' :-
        文字を改行まで読み込む([],_逆順文字ならび),
        atom_chars(_逆順文字列,_逆順文字ならび),
        writef('%t\n',[_逆順文字列]).

文字を改行まで読み込む(_文字列ならび1,_文字ならび) :-
        get_char(_文字),
        \+(_文字='\n'),
        文字を改行まで読み込む([_文字|_文字列ならび1],_文字ならび),!.
文字を改行まで読み込む(_文字ならび,_文字ならび).