配列に文字を入れるプログラムを作ってるのですが
printf_profileでその構造体に入ったデータを見られるようにしました。
そこで
moziの配列の最初の文字を辞書順で小さい順に比べて
それとセットになってるnamaeの配列も一緒に小さい順に並び替えたいのですが
どうしたらいいでしょうか?
わかりずらいので例を書きます
namaeにaaa
moziにbbb
と最初に入力したら
namaeにccc
moziにaaa
と次に入力します
処理をすると
NO1
ccc
aaa
NO2
aaa
bbb
となるようにしたいです
#include<stdio.h>
typedef struct{
char mozi[10];
char namae[30];
}PE;
void input_profile(PE *p,int *a);
void printf_profile(PE *p,int *a);
int main(void)
{
int i=0;
PE c[999];
input_profile(c,&i);
return 0;
}
void input_profile(PE *p,int *a){
int c,b;
for(b=0;999>b;b++)
{
printf("名前を入力\n");
scanf("%s",(p+b)->namae);
printf("文字を入力\n");
scanf("%s",(p+b)->mozi);
printf("入力を終えるなら0を入力してください\n続けるなら、それ以外の数字を入力してください\n");
scanf("%d",&c);
if(c==0)break;
}
b++;
*a=b;
printf_profile(p,a);
}
void printf_profile(PE *p,int *a)
{
int b;
for(b=0;*a>b;b++)
{
printf("NO%d\n",b+1);
printf("文字%s\n",(p+b)->mozi);
printf("名前%s\n",(p+b)->namae);
}
}