このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/161
#  [1] 授業単元:C言語プログラミング  
#  [2] 問題文 
#  ポインタの利用方法として,配列を使わない文字列処理を習得する.課題3を配列を使わずに「メモリの動的確保」及び「ポインタ演算」により処理する. 
#  課題3 
#  配列の値を前後に移動させる際に押し出された要素(文字)は反対側に入るようにします. 
#  例. ABCDE に 手続き(1)(=1つ前に詰める)を適用すると 
#    BCDEA となる. 
#  文字型の配列に値を格納しなくてはなりませんが「配列の初期化」のテクニックを
#  使って,プログラム中で行う(つまりキーボードから打ち込まない).
#  また,配列のサイズ(つまり要素数)は5個とする. ( 例."ABCDE" の5文字を
#  処理対象とする等) 
#  条件 
#  プログラム中で配列を用いてはいけません.配列の宣言の代わりに,必ずにある「メモリの動的割り当て」の手法を使って malloc関数で必要なメモリを確保する方法で実装すること. 
#  変化したことが分かるようにprintf関数で確認できるようにすること 
#  

文字列の先頭文字を切り取り残り文字列の末尾に結合した文字列を作る(_文字列,_対象となった文字,_結合された文字列) :-
        sub_atom(_文字列,0,1,R,_対象となった文字),
        sub_atom(_文字列,1,R,_,_残りの文字列),
        atom_concat(_残りの文字列,_対象となった文字,_結合された文字列).

文字列の末尾文字を切り取り先頭に結合した文字列を作る(_文字列,_対象となった文字,_結合された文字列) :-
        sub_atom(_文字列,S,1,0,_対象となった文字),
        sub_atom(_文字列,0,S,1,_末尾を切り取られた文字列),
        atom_concat(_対象となった文字,_末尾を切り取られた文字列,_結合された文字列).

文字列の先頭からN文字を切り取り残り文字列の末尾に結合した文字列を作る(_文字列,N,_対象となった文字列,_結合された文字列) :-
        sub_atom(_文字列,0,N,R,_対象となった文字列),
        sub_atom(_文字列,N,R,0,_残りの文字列),
        atom_concat(_残りの文字列,_対象となった文字,_結合された文字列).

文字列の末尾からN文字を切り取り先頭に結合した文字列を作る(_文字列,_対象となった文字,_結合された文字列) :-
        sub_atom(_文字列,S,N,0,_対象となった文字),
        sub_atom(_文字列,0,S,N,_末尾を切り取られた文字列),
        atom_concat(_対象となった文字,_末尾を切り取られた文字列,_結合された文字列).