このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/496
#  [1] C言語プログラミング2  
#  [2] 問題1・入力した文字列から文字を一文字ずつ交互に読み取り、文字列1、文字列2として結果を出力するプログラムを作成せよ。 
#  問題2・また、文字列1、文字列2を入力し、それぞれから一文字ずつ交互に読み取った結果を文字列として出力するプログラムを作成せよ。 
#  条件1・500文字前後の文字列を扱えるようにせよ。 
#  条件2・問題1の文字列が奇数の場合は文字列1の側に奇数で余った一文字を入れること。(問題2の文字列1が一文字多い場合読み取りを忘れないように) 
#  条件3・扱う文字列は半角英数記号のみとする。全角文字は考慮しなくてよい。 
#  問題1・例 
#  文字列・abcdefghijklm 
#  ↓ 
#  文字列1・acegikm 
#  文字列2・bdfhjl 
#   
#  問題2・例 
#  文字列1・acegikm 
#  文字列2・bdfhjl 
#  ↓ 
#  文字列・abcdefghijklm 
#  

'また、文字列1、文字列2を入力し、それぞれから一文字ずつ交互に読み取った結果を文字列として出力するプログラムを作成せよ。
条件1・500文字前後の文字列を扱えるようにせよ。
条件3・扱う文字列は半角英数記号のみとする。全角文字は考慮しなくてよい。
問題2・例
文字列1・acegikm
文字列2・bdfhjl
↓
文字列・abcdefghijklm' :-
        '文字列1、文字列2を入力し
条件1・500文字前後の文字列を扱えるようにせよ。
条件3・扱う文字列は半角英数記号のみとする。全角文字は考慮しなくてよい。'(_文字列1,_文字列2),
        それぞれから一文字ずつ交互に読み取った結果を(_文字列1,_文字列2,_読み取った結果ならび),
        文字列として出力する(_読み取った結果ならび).

'文字列1、文字列2を入力し
条件1・500文字前後の文字列を扱えるようにせよ。
条件3・扱う文字列は半角英数記号のみとする。全角文字は考慮しなくてよい。'(_文字列1,_文字列2) :-
        write('文字列1(半角英数記号のみからなる)を入力してください : '),
        get_line(_文字列1),
        write('文字列2(半角英数記号のみからなる)を入力してください : '),
        get_line(_文字列2).

それぞれから一文字ずつ交互に読み取った結果を('','',[]) :- !.
それぞれから一文字ずつ交互に読み取った結果を('',_文字列2,L) :-
        それぞれから一文字ずつ交互に読み取った結果を(_文字列2,'',L).
それぞれから一文字ずつ交互に読み取った結果を(_文字列1,_文字列2,[_文字|R]) :-
        一文字ずつ読み取った(_文字列1,_文字,_文字列3),
        それぞれから一文字ずつ交互に読み取った結果を(_文字列2,_文字列3,R).

一文字ずつ読み取った(_文字列1,_文字,_文字列3) :-
        sub_atom(_文字列1,S_1,1,R_1,_文字),
        S_2 is S_1 + 1,
        sub_atom(_文字列1,S_2,R_1,0,_文字列3),!.

文字列として出力する(_読み取った結果ならび) :-
        atomic_list_concat(_読み取った結果ならび,_読み取った結果文字列),
        writef('%t\n',[_読み取った結果文字列]).