このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/189
#  [1] 授業単元:C言語 文字列  
#  [2] 問題文  
#  http://ime.nu/s2.muryo-de.mydns.jp/~c_cpp_homework/cgi-bin/joyful/img/382.txt 
#  
#  文字列処理 キーボードからアルファベット小文字で入力し、イニシャルで表示する
#  プログラムを作成しなさい。 
#  入力できる文字数は姓、名、最大20文字、配列を宣言すること。
#  文字変換関数を使用すること。
#   (実行結果) 氏名をアルファベット小文字で入力して下さい
#  tanaka
#  hanako
#  tanaka hanako さんのイニシャルはH,Tです
#  
#  キーボードからアルファベット(小文字、大文字)と数字(0-9)が入り交じった文字列を入力し、 
#  その文字列の含まれる小文字、大文字、数字の数をそれぞれカウントするプログラムを作成しなさい。
#  ただし、入力する文字数は最大30文字とする。
#  文字列操作関数を必ず用いること
#  
#  (実行結果) 文字列を入力して下さい.
#  TanakaHanako1234          
#  入力文字列は TanakaHanako1234 で          小文字は10文字,大文字は2文字,数字は4文字です.

'文字列処理 キーボードから姓名をアルファベット小文字で入力し(入力できる文字数は姓、名、最大20文字)、イニシャルで表示する。' :-
        '文字列処理 キーボードから姓名をアルファベット小文字で入力し(入力できる文字数は姓、名、最大20文字)'(_姓名),
        'イニシャルで表示する。'(_姓名,_イニシャル).

'文字列処理 キーボードから姓名をアルファベット小文字で入力し(入力できる文字数は姓、名、最大20文字)'(_姓,_名) :-
        '姓を入力(入力できる文字数は姓、名、最大20文字)'(_姓),
        '名を入力(入力できる文字数は姓、名、最大20文字)'(_名).

'姓を入力(入力できる文字数は姓、名、最大20文字)'(_姓) :-
        write('姓を入力してください : '),
        get_line(Line_1),
        '入力できる文字数は姓、名、最大20文字'(Line_1,_姓).

'名を入力(入力できる文字数は姓、名、最大20文字)'(_名) :-
        write('名を入力してください : '),
        get_line(Line_2),
        '入力できる文字数は姓、名、最大20文字'(Line_2,_名).
        
'入力できる文字数は姓、名、最大20文字'(Line,Line) :-
        atom_length(Line,_長さ),
        _長さ_1 =< 20,!.
'入力できる文字数は姓、名、最大20文字'(_文字列,_20文字以内の文字列) :-
        sub_atom(_文字列,0,20,_,_20文字以内の文字列).

'イニシャルで表示する。'(_姓,_名) :-
        イニシャルで(_姓,_名,_イニシャル),
        writef('%t %t さんのイニシャルは %t です\n',[_イニシャル]).

イニシャルで(_姓,_名,_イニシャル) :-
        sub_atom(_姓,0,1,_,_姓の第一文字),
        to_upper(_姓の第一文字,_イニシャル_1),
        sub_atom(_名,0,1,_,_名の第一文字),
        to_upper(_名の第一文字,_イニシャル_2),
        atomic_list_concat([_イニシャル_1,',',_イニシャル_2],_イニシャル).