このディレクトリの索引
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つ目のハイフン'(_文字列,_2つ目のハイフンの位置) :-
        sub_atom(_文字列,_1つ目のハイフンの位置,1,_,'-'),
        sub_atom(_文字列,_2つ目のハイフンの位置,1,_,'-'),
        _2つ目のハイフンの位置 > _1つ目のハイフンの位置,!.

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

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