使用具有空格的名称按字母顺序对结构数组进行排序

时间:2013-05-06 09:01:06

标签: c sorting struct

我有一个结构

struct BookInfo
{
    char title[50];
    int numAuthors;
    char authors[50][50];
    int year;
    int checkedout;
};

我可以按年分类,但我无法按照我的生活标题进行排序我的所有代码都按照文件中的顺序打印出名称,或者我得到“不兼容的分类类型”错误注释行

int j,i;
    char temp;
    for(i = 1; i < 14; i++)
    {
        j = i - 1;
        while( j >= 0 && strcmp( library[j+1].title, library[j].title) < 0 )
        {
            temp =  library[j + 1]; /*errors*/
            library[j+1] = library[j];
            library[j] = temp; /*errors*/
            j--;
        }
        printf("n%s",library[j].title);
    }

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您正在排序BookInfo个实例,因此您的temp变量应该是相同类型而不是char:

int j,i;
BookInfo temp;