void Svaguename(SqList &L)
{
typedef struct
{
char son[50];
}Element;
int i,j,n,m,k=0,l;
char key[50],str[50];
printf("请输入要查找的书名:");
getchar();
scanf("%s",&key);
printf("ISBN 书名 出版社 价格\n");
for(i=0;i<L.length;i++)
{
int N1,N2=0; //N1为str的长度 N2为str连续子串的个数
N1=strlen(L.elem[i].name);
for(n=1;n<=N1;n++) //计算连续子串的个数
N2+=n;
strcpy(str,L.elem[i].name);
Element *b=(Element *)malloc(N2*sizeof(Element)); //申请与子串的个数相同的空间
for(n=1;n<=N1;n++) //n控制子字符串的长度
{
l=0;
while(1) //while循环内为给一个子字符串数组赋值
{
m=l;
for(j=0;j<=n;j++) //j控制赋值
{
b[k].son[j]=str[m];
m++;
}
k++;
l++;
if(m==N1)
break;
}
}
for(n=0;n<N2;n++) //挨个比对
if(strcmp(b[n].son,key)==0)
printf("%-17s %-24s %-14s %.1f\n",L.elem[i].no,L.elem[i].name,L.elem[i].publish,L.elem[i].price);
free(b);
}
}