このディレクトリの索引
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文字前後の文字列を扱えるようにせよ。
条件2・問題1の文字列が奇数の場合は文字列1の側に奇数で余った一文字を入れること。(問題2の文字列1が一文字多い場合読み取りを忘れないように)
条件3・扱う文字列は半角英数記号のみとする。全角文字は考慮しなくてよい。
問題1・例
文字列・abcdefghijklm
↓
文字列1・acegikm
文字列2・bdfhjl' :-
        '入力した文字列から'(_入力した文字列),
        '文字を一文字ずつ交互に読み取り、文字列1、文字列2として'(_入力した文字列,_文字列1,_文字列2),
        結果を出力する(_入力した文字列,_文字列1,_文字列_2).

入力した文字列から(_入力した文字列) :-
        write('文字列を入力してください : '),
        get_line(_入力した文字列).

'文字を一文字ずつ交互に読み取り、文字列1、文字列2として'('','','').
'文字を一文字ずつ交互に読み取り、文字列1、文字列2として'(_文字列,_文字列1,_文字列2) :-
        sub_atom(_文字列,0,1,R,_文字),
        sub_atom(_文字列,1,R,0,_文字列3),
        '文字を一文字ずつ交互に読み取り、文字列1、文字列2として'(_文字列3,_文字列2,_文字列4),
        atom_concat(_文字,_文字列4,_文字列1).


get_line(_文字列) :-
        read_line_to_codes(user_input,Codes),
        atom_codes(_文字列,Codes).