2つのテキストファイルのマージについて
現在C言語を学習中の超初心者の者です。C言語のファイル処理や関数、マージ、ポインタの処理に悪戦苦闘している日々を送っています(泣)
皆様に、是非、アドバイスを頂けたらと思い、投稿させて頂きました。
2つのテキストファイルを読み込み、それぞれ、ファイルの中身の文字列をソートし、昇順に並び替え、さらに、その2つのファイルをマージし、昇順に並び替え表示させる(関数を用いて)課題をクリアできずにいます。
int main(void)
{
char strAry1[20][20];
char strAry2[20][20];
//ファイル1"menber1.txt"情報を取得
getData( );
//ファイル1ソート前出力
putOut( );
//ファイル1情報ソート
sortString( );
//ファイル1ソート後出力
putOut( );
//ファイル2"kantoku1.txt"情報を取得
getData( );
//ファイル1ソート前出力
putOut( );
//ファイル2情報ソート
sortString( );
//ファイル2ソート後出力
putOut( );
return 0;
}
main()関数はこのようなイメージで考えているのですが、どうのように処理すればよいのでしうか?(泣)質問がアバウトで申し訳ありません。ちなみに、2つのテキストファイルの中身は
(1) "menber1.txt"--------
takahara
inamoto
endou
nakazawa
komano
abe
nakamura
(2) "kantoku1.txt"------
torushie
ofuto
jico
oshimu
kamo
okada
farukan
です。一応、途中まで考えて、いきずまってしまったソースです。→
int getData(char *filename, int count, char ss[][20]);
void putOut( char ss[][20], int count);
void sortString( char ss[][20], int count);
int main(void)
{
char strAry1[20][20];
char strAry2[20][20];
int count = 7;
//ファイル1情報を取得
getData("menber1.txt", count, strAry1);
//ファイル1ソート前出力
putOut( strAry1, count);
//ファイル1情報ソート
sortString(strAry1, count );
//ファイル1ソート後出力
putOut( strAry1, count);
//ファイル2情報を取得
getData("kantoku1.txt", count, strAry2);
//ファイル1ソート前出力
putOut( strAry2, count);
//ファイル2情報ソート
sortString(strAry2, count );
//ファイル2ソート後出力
putOut( strAry2, count);
return 0;
}
//ファイル情報を取得
int getData(char *filename, int count, char ss[][20])
{
FILE *fp1;
if((fp1 = fopen(filename, "r")) == NULL){ //ファイルオープン
printf("ファイルオープンできません\n");
exit(1);
}
count = 0;
while(fp1 != NULL){
fgets(ss[count], 20, fp1); //1行単位で文字列取得
if(feof(fp1))
break;
count++;
}
fclose(fp1);
return 0;
}
//ファイルを出力する
void putOut( char ss[][20], int count)
{
int i;
for(i=0; i<count; i++){
printf("%s",ss[i]);
}
printf("\n");
}
//ファイルをソートする
void sortString( char ss[][20], int count)
{
int i,j;
char temp[20];
for(i=0; i<count-1; i++){
for(j=i+1; j<count; j++){
if(strcmp(ss[i], ss[j]) > 0){
strcpy(temp, ss[i]);
strcpy(ss[i], ss[j]);
strcpy(ss[j], temp);
}
}
}
printf("ソート後\n");
}
少しでも情報がほしいです(泣)皆様忙しいと思いますが、助言をお願い致します。
お礼
回答ありがとうございます。 なるほど、参考になります! ありがとうございます。