|
こんな感じでしょうか。
st_cmp関数内でPersonMaster構造体にキャストしてあげる必要があるので
構造体の定義は外にだしました。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int st_cmp(const void *a, const void *b);
typedef struct
{
char personno[9]; /*個人番号*/
char simei[61]; /*氏名*/
char ksimei[31]; /*カナ氏名*/
char yubin[9]; /*郵便番号*/
char jucd[5]; /*住所CD*/
char azamei[41]; /*字名*/
char katagaki[41]; /*方書*/
char telno[14]; /*電話番号*/
}PersonMaster;
main()
{
int i;
/*上の配列をこの構造体変数に変更したい*/
/*構造体宣言*/
PersonMaster wk_person[] = {
{"00000001","ナリタブライアン","ナリタブライアン"},
{"00000003","マヤノトップガン","マヤノトップガン"},
{"00000005","ジェニュイン","ジェニュイン"},
{"00001001","サクラチトセオー","サクラチトセオー"},
{"00010001","メジロライアン","メジロライアン"},
{"00000100","グラスワンダー","グラスワンダー"},
{"00000099","タイキシャトル","タイキシャトル"},
{"00000010","エアグルーヴ","エアグルーヴ"},
{"00000022","サイレンススズカ","サイレンススズカ"},
{"00000009","サニーブライアン","サニーブライアン"},
};
qsort(wk_person, sizeof(wk_person) / sizeof(PersonMaster), sizeof(PersonMaster), st_cmp);
for (i = 0; i < sizeof(wk_person) / sizeof(PersonMaster); i++)
printf("%s:%s\n", wk_person[i].personno, wk_person[i].simei);
printf("\n");
}
int st_cmp(const void *a, const void *b)
{
return strcmp(((PersonMaster *)a)->personno, ((PersonMaster *)b)->personno);
}
|