2012-05-06 9 views
1

私は2つのテキストファイルを一緒に新しいファイルにマージしてアルファベット順にソートする機能を作っています。私が正しいとすれば、次のコードは2つのファイルを新しいファイル(newcat)に結合するはずですが、文字列をアルファベット順に並べ替えるためにstrcmp関数を使用するにはどうすればよいですか?各ファイルに対してCでのテキストファイルのマージ

void combine(FILE* cat1, FILE* cat2, FILE* newcat) 
    { 
     char ch; 

    while((ch = fgetc(cat1)) != EOF) 
     fputc(ch,newcat); 

    while((ch = fgetc(cat2)) != EOF) 
     fputc(ch,newcat); 

    fclose (cat1); 
    fclose (cat2); 
    fclose (newcat); 
    } 
+7

'char ch;'は**あまりにも非常に間違っています!** 'int ch;'を使用してください。 – pmg

+3

新しいファイルを行の配列としてメモリにロードしてから、その行に並べ替えアルゴリズムを使用してソートされた配列を書き出す必要があります。文字単位で読み込んでいるので、両方のファイルを読み込んでいるときに並べ替えを行うことはできません。 –

+3

"私はやってみた"と "もし私が正しいとすれば"意味がありません。試してみたら、コードが正しいかどうかを知ることができます。これは、コードを試していないことを意味します。あなたの宿題を最初に理解してから、コードと、あなたが期待している通りに働いていないことに関する具体的な質問を投稿してください。私たちがあなたのために仕事をするならば、他人の仕事をコピーして貼り付ける方法以外は何も学ばないでしょう。 :) –

答えて

1

あなたは、各文字列を考慮して、strcmpを使用することができ、お好みの任意のソートアルゴリズムを使用して文字列を比較し、宛先ファイルに結果を配置します。これにより、ファイルがアルファベット順にマージされます。

関連する問題