このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1286978599/480
#  [1] 授業単元:プログラミング2 
#  [2] 問題文(含コード&リンク): 
#  (1)文字列を入力してその文字列のデータサイズを求めて表示させるプログラムを作成せよ。 
#   実行例: 
#     >入力文字列は? 大阪府 
#     >文字列"大阪府"のデータサイズは 7byte 
#   
#   
#  ヒント: 
#  入力文字列を一時保存するための入力バッファchar buf[256];を用意する 
#  文字列の大きさは関数strlenで求めることができる。string.hをインクルード 
#  文字列は最後にnull文字'\0'が入っており、strlenで求めた大きさにはnull文字は含まれないので注意すること。 
#   
#  (2)char*型配列 char *ps[10];を用意する。 
#  キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。 
#  ただし、文字列は動的確保を用いて文字列の大きさ分だけを確保し、余分なメモリをしようしないようにせよ。 
#  すべての文字列を入力し終わったら、ps[]に格納された文字列を順にディスプレイに表示させよ。 
#   
#  ヒント: 
#  最初にps[]の初期化としてps[]の各要素にNULLを代入しておく。 
#  配列の動的確保も変数と同様に配列データの大きさ分(byte)をmallocで確保すればよい。 
#  プログラムの最後で、ps[]の各要素に対して、動的確保したメモリを開放するのを忘れないこと。 
#    
#  

文字列を入力してその文字列のデータサイズを求めて表示させる :-
        write('入力文字列は? '),
        get_line(Line),
        atom_codes(Line,Codes),
        findsum(Code_size,(
                    append(_,[Code|_],Codes),
                    Code_size is (Code // 32768) + 1),
                _データサイズ),
        write_formatted('入力文字列のデータサイズは%tです\n',[_データサイズ]).

'キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。' :-
        length(L1,10),
        'キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。'(L1,_ps),
        put_lines(_ps).

'キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。'([],[]) :- !.
'キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。'([_|R1],[_行|R2]) :-
        get_line(_行),
        'キーボードから10個の文字列を入力し、入力された文字列を配列ps[]に格納せよ。'(R1,R2).