このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/458
#  [1] 基礎プログラミング実習 
#   
#  [2]99文字までの文字列を入力し,アルファベットの小文字は大文字に,アルファベットの大文字は小文字に, 
#  またアルファベット以外の文字はアスタリスク’*’に変換した文字列を出力するプログラムを作成せよ. 
#  99文字以下の文字列を入力してください.abcABC123sDFgh#"x32YY= 
#   
#  変換された文字列はABCabc***SdfGH**X**yy*です. 
#   
#  追伸: 
#  ちなみにどうやらアスキーコードを使うらしいです。 
#  大文字のコードに32を足せば小文字のコードになるとか言ってました。 
#  これを使わなければいけないようです。 
#  あとライブラリ関数は使用不可です。 
#  文字列とかやったの初めてです。 
#   
#  どうかお願いします。 
# 
# 

'アルファベットの小文字は大文字にアルファベットの大文字は小文字にまたアルファベット以外の文字はアスタリスク*に変換して表示' :-
    write('99文字以下の文字列を入力してください. '),
    get_line(Line),
    atom_codes(Line,Codes),
    length(Codes,_長さ),
    _長さ =< 99,
    文字コードによる直接変換(Codes,Codes2),
    atom_codes(_変換された文字列,Codes2),
    write_formatted('変換された文字列は%tです\n',[_変換された文字列]).

文字コードによる直接変換([],[]).
文字コードによる直接変換([Code|R1],[Code2|R2]) :-
    Code >= 65,Code =< 90,
    Code2 is Code + 32,
    文字コードによる直接変換(R1,R2).
文字コードによる直接変換([Code|R1],[Code2|R2]) :-
    Code >= 97,Code =< 122,
    Code2 is Code - 32,
    文字コードによる直接変換(R1,R2).
文字コードによる直接変換([Code|R1],[42|R2]) :-
    \+((Code >= 65,Code =< 90)),
    \+((Code >= 97,Code =< 122)),
    文字コードによる直接変換(R1,R2).