初めて質問させていただきます。C言語初心者です。
ファイル(sort.txt)から読み込んだ
AA
CC
BB
EE
DD
をアルファベット順に並べたいのですが、読み込んで表示する事は出来たのですが並べ替える方法がわかりません。
色々なサイトを参考にしてみたのですが、どうしてもソートの部分で止まってしまい、読みこみの時点で既に間違えているのか、組み込み方が違うのかわかりません。
読み込みは以下のようにやりました。
#include <stdio.h>
#include <stdlib.h>
int cmp(const void a, const void b)
{
return strcmp((const char*)a,*(const char **)b);
}
int main()
{
char a[5][3];
int i;
FILE *file;
file=fopen("sort.txt","r");
if(file == NULL)
{
printf("ファイルオープン失敗");
return 0;
}
fscanf(file,"%s",a[0]);
fscanf(file,"%s",a[1]);
fscanf(file,"%s",a[2]);
fscanf(file,"%s",a[3]);
fscanf(file,"%s",a[4]);
for(i=0;i<5;i++)
{
printf("%s¥n",a[i]);
}
qsort(a,5,sizeof *a,cmp);
for(i=0;i<5;i++)
{
printf("%s¥n",a[i]);
}
fclose(file);
}
という形にしました。
何がおかしいのか、何を勉強し直すべきなのか、アドバイスいただけたらありがたいです。
よろしくお願いします。
追記:参考にしたサイトのqsortをそのまま載せました。
回答3件
あなたの回答
tips
プレビュー