このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/133
#  [1] 授業単元:C言語プログラミング 
#  [2] 問題文(含コード&リンク): 
#  [1] 授業単元: 
#  char buf[80]; 
#  int main(int ac, char ** av) 
#  { 
#   int i; 
#   buf[0] = '\0'; 
#   for(i = 1; i < ac; i++){ 
#   printf("%3d \"%s\"\n", strlen(av[i]), av[i]); 
#   strcat(buf, av[i]); 
#   } 
#   printf("%3d \"%s\"\n", strlen(buf), buf); 
#   
#  これを入力した文字列を逆順に表示できるように書き換えよ 
#  

'バイナリーモードで読み込まれたバイトコードならびを逆順に並べ変えた後に、EUC全角文字を復元して文字列を作る'(_コードならび,_逆順文字列) :-
        reverse(_コードならび,_逆転したコードならび),
        'EUC全角文字コードを復元する'(_コードならび,_文字単位ならび),
        atom_codes(_逆順文字列,_文字単位ならび).

'EUC全角文字コードを復元する'([],[]) :- !.
'EUC全角文字コードを復元する'([C1,C2|R1],[C|R2]) :-
        C1 > 127,
        C2 > 127,
        C is C2 * 256 + C1,
        'EUC全角文字コードを復元する'(R1,R2),!.
'EUC全角文字コードを復元する'([C|R1],[C|R2]) :-
        'EUC全角文字コードを復元する'(R1,R2),!.