このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/855
#  [1] 授業単元:C言語 
#  [2] 問題文: 
#  入力された文字列で2つ目のハイフン以降の文字列だけを表示せよ。 
#  <実行例> 
#  文字列を入力せよ:one-two-three-four 
#  three-four 
#   
#  

入力された文字列で2つ目のハイフン以降の文字列だけを表示せよ :-
        入力された文字列で(_文字列),
        '2つ目のハイフン以降の文字列だけを'(_文字列,_2つ目のハイフン以降の文字列),
        表示せよ(_2つ目のハイフン以降の文字列),!.

入力された文字列で(_文字列) :-
        get_line(_文字列).

'2つ目のハイフン以降の文字列だけを'(_文字列,_2つ目のハイフン以降の文字列) :-
        '2つ目のハイフン'(_文字列,_2つ目のハイフンの位置),
        以降の文字列だけを(_文字列,_2つ目のハイフン以降の文字列).

'2つ目のハイフン'(_文字列,_2つ目のハイフンの位置) :-
        sub_atom(_文字列,0,_2つ目のハイフンの位置,_,_副文字列),
        count(sub_atom(_副文字列,_,1,_,'-'),2),!.

以降の文字列だけを(_文字列,_2つ目のハイフンの位置,_2つ目のハイフン以降の文字列) :-
        _2つ目のハイフンの次の位置 is _2つ目のハイフンの位置 + 1,
        sub_atom(_文字列,_2つ目のハイフンの次の位置,_,0,_2つ目のハイフン以降の文字列),!.

表示せよ(_2つ目のハイフン以降の文字列) :-
        writef('%t\n',[_2つ目のハイフン以降の文字列]).