我创建一个具有3个名称的结构,并且我想创建一个将结构(或指向该结构的指针)作为参数并按字母顺序对名称进行排序的函数。我不知道如何解决sort_name
函数,有人可以给我提示吗?预先感谢。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
char name[50];
};
void getDetail(struct student *ptr) {
int i;
for (i = 0; i < 3; i++) {
printf("Enter %dth name: ",i+1);
scanf("%s",ptr->name);
ptr++;
}
}
void sort_name(struct student *ptr) {
int i,j=0;
char temp[50];
for (i=0;i<3;i++)
{
for (j=i+1;j<3;j++)
{
if(strcmp(ptr->name,(ptr+1)->name)>0)
{
strcpy(temp,ptr->name);
strcpy(ptr->name,(ptr+1)->name);
strcpy((ptr+1)->name,temp);
}
}
}
printf("In order:");
for(i=0;i<3;i++)
{
printf("%s",ptr->name);
}
}
int main()
{
struct student s[3];
getDetail(s);
sort_name(s);
return 0;
}