【C语言】按图书名提取首字母并排序

使用结构体数组输入10本书名的名称和单价,调用函数按照书名的字母顺序进行排序,在主函数中输出排序结果。
代码有哪些错误?蟹蟹

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct book
{
    char name;
    float money;
}shu[10];

void paixv()
{
    int i;
    char t[100];
    for(i=0;i<9;i++)
    {
        if(strcmp(&shu[i].name,&shu[i+1].name)>0)
        {
            strcpy(&t[100],&shu[i].name);
            strcpy(&shu[i].name,&shu[i+1].name);
            strcpy(&shu[i+1].name,&t[100]);
        }
        printf("\n第%d本图书:书名:%c;单价:%.2f",i+1,shu[i].name,shu[i].money);
    }
    printf("\n");
}

void main()
{
    char str[100],s;
    int i;
    printf("图书信息录入:\n");
    for(i=0;i<10;i++)
    {
        printf("第%d本图书:\n书名:",i+1);
        scanf("%s",&shu[i].name);
        printf("单价:");
        scanf("%f",&shu[i].money);
    }
    printf("这10本书的首字母为:");
    for(i=0;i<10;i++)
    {
        str[100]=shu[i].name;
        s=str[0];
        printf("%c、",s);
    }
    paixv();
}

```。

修改如下,供参考对照:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct book
{
    char name[64]; //name;
    float money;
}shu[10];
void paixv()
{
    int i,j;
    struct book tmp;
                           //char t[100];
    for(j=0;j<9;j++)
    {
        for(i=0;i<9-j;i++)
        {
            if(strcmp(shu[i].name,shu[i+1].name)>0)
                           //if(strcmp(&shu[i].name,&shu[i+1].name)>0)
            {
               tmp     = shu[i];
               shu[i]  = shu[i+1];
               shu[i+1]= tmp;
                           //strcpy(&t[100],&shu[i].name);
                           //strcpy(&shu[i].name,&shu[i+1].name);
                           //strcpy(&shu[i+1].name,&t[100]);
            }
        }

                    //printf("\n第%d本图书:书名:%c;单价:%.2f",i+1,shu[i].name,shu[i].money);
    }
                                //printf("\n");
}
void main()
{
                                //char str[100],s;
    int i;
    printf("图书信息录入:\n");
    for(i=0;i<10;i++)
    {
        printf("第%d本图书:\n书名:",i+1);
        scanf("%s",shu[i].name);//scanf("%s",&shu[i].name);
        printf("单价:");
        scanf("%f",&shu[i].money);
    }
    printf("这10本书的首字母为:");
    for(i=0;i<10;i++)
    {
                                //str[100]=shu[i].name;
                                //s=str[0];
        printf("%c、",shu[i].name[0]);
    }
    paixv();
    for(i=0;i<10;i++)
        printf("\n第%d本图书:书名:%s;单价:%.2f",i+1,shu[i].name,shu[i].money);
    printf("\n");
    
}

name的定义应该是char数组或者指针,不然只能输入一个字符