このディレクトリの索引

# 出典 :: C/C++の宿題を片付けます 113代目 (レス番号55) # [1] 授業単元:プログラミング2 # [2] 問題文(含コード&リンク): # アルファベットと数字からなる文字列 str と文字 c を引数として受け取り, # 文字列 str から文字 c をすべて削除する返す関数 del_chrを定義し, # 動作を確認するプログラムを作成せよ. del_chr(_対象文字列,_削除する文字,_削除する文字が削除された文字列) :- 削除する文字が削除された文字ならび(_対象文字列,_削除する文字,_削除する文字が削除された文字ならび), atom_chars(_削除する文字が削除された文字列,_削除する文字が削除された文字ならび). 削除する文字が削除された文字ならび(_対象文字列,_削除する文字,_削除する文字が削除された文字ならび) :- findall(_文字,削除対象ではない文字を取りだす(_対象文字列,_削除する文字,_文字),_削除する文字が削除された文字ならび). 削除対象ではない文字を取りだす(_対象文字列,_削除する文字,_文字) :- 取りだす(_対象文字列,_文字), 削除対象ではない文字を(_削除する文字,_文字). 取りだす(_対象文字列,_文字) :- sub_atom(_対象文字列,_,1,_,_文字). 削除対象ではない文字を(_削除する文字,_文字) :- \+(_文字=_削除する文字). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% del_chr(_対象文字列,_削除する文字,_削除された文字列) :- atom_chars(_対象文字列,_対象文字ならび), findall(C,(member(C,_対象文字ならび),\+(C=_削除する文字)),L), atom_chars(_削除された文字列,L). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 文字列から特定文字を削除する(_対象文字列,_削除する文字,_削除された文字列) :- atom_chars(_対象文字列,_対象文字ならび), findall(_文字,( member(_文字,_対象文字ならび), \+(_文字=_削除する文字)),L), atom_chars(_削除された文字列,L). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 文字列から特定文字を削除する(_対象文字列,_削除する文字,_削除された文字列) :- atom_chars(_対象文字列,_対象文字ならび), findall(_文字,( append(_,[_文字|_],_対象文字ならび), \+(_文字=_削除する文字)),L), atom_chars(_削除された文字列,L). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 文字列から特定文字を削除する(_対象文字列,_削除する文字,_削除された文字列) :- findall(_文字,( sub_atom(_対象文字列,_,1,_,_文字), \+(_文字=_削除する文字)),L), atom_chars(_削除された文字列,L). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 文字列から特定文字を削除する(_対象文字列,_削除する文字,_削除された文字列) :- sub_atom(_対象文字列,S,1,_,_削除する文字), sub_atom(_対象文字列,0,S,_,_副文字列1), S2 is S + 1, sub_atom(_対象文字列,S2,_,_,_副文字列2), 文字列から特定文字を削除する(_副文字列2,_削除する文字,_副文字列3), concat_atom([_副文字1,_副文字列3],_削除された文字列),!. 文字列から特定文字を削除する('',_,'') :- !. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 文字列から特定文字を削除する(_対象文字列,_削除する文字,_削除された文字列) :- atom_chars(_対象文字列,_対象文字ならび), ならびから特定文字を削除する(_対象文字ならび,_削除する文字,_削除された文字ならび), atom_chars(_削除された文字列,_削除された文字ならび). ならびから特定文字を削除する([],_,[]). ならびから特定文字を削除する([_文字|R1],_文字,R2) :- ならびから特定文字を削除する(R1,_文字,R2),!. ならびから特定文字を削除する([A|R1],_文字,[A|R2]) :- \+(A == _文字), ならびから特定文字を削除する(R1,_文字,R2),!.