このディレクトリの索引
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文字です.

'キーボードからアルファベット(小文字、大文字)と数字(0-9)が入り交じった文字列を入力し(入力する文字数は最大30文字とする)、その文字列の含まれる小文字、大文字、数字の数をそれぞれカウントする' :-
        'キーボードからアルファベット(小文字、大文字)と数字(0-9)が入り交じった文字列を入力し(入力する文字数は最大30文字とする)'(_入力文字列),
        'その文字列の含まれる小文字、大文字、数字の数をそれぞれカウントする'(_入力文字列,_小文字の数,_大文字の数,_数字の数).

'キーボードからアルファベット(小文字、大文字)と数字(0-9)が入り交じった文字列を入力し(入力する文字数は最大30文字とする)'(_入力文字列) :-
        write('文字列を入力してください\n'),
        get_line(Line),
        最大30文字(Line,_入力文字列).

最大30文字(Line,_入力文字列) :-
        atom_length(Line,_長さ),
        _長さ > 30,
        sub_atom(Line,0,30,_,_入力文字列),!.
最大30文字(_入力文字列,_入力文字列).


'その文字列の含まれる小文字、大文字、数字の数をそれぞれカウントする'(_入力文字列,_小文字の数,_大文字の数,_数字の数) :-
        count((sub_atom(_入力文字列,_,1,_,_文字),_文字 @>= 'a',_文字 @=< 'z'),_小文字の数),
        count((sub_atom(_入力文字列,_,1,_,_文字),_文字 @>= 'A',_文字 @=< 'Z'),_大文字の数),
        count((sub_atom(_入力文字列,_,1,_,_文字),_文字 @>= '0',_文字 @=< '9'),_数字の数).