如何让如下函数的输出结果输入一个数组?还是说函数体本身需要什么修改?
初学者咨询一下,一个模糊匹配的函数,会模糊查询通讯录中的name值。因为匹配的条目不止一条,想要把输出的不同的i值输入一个数组,再遍历打印应该怎么操作?或者有没有其他的打印思路?
static int FuzzySearchName (const struct Contact_list *a, char name[255])
{
int i = 0;
for(i = 0; i < a->sizeofContact; i++)
{
if(0 != strstr(a->context[i].name, name))
{
return i;
}
}
return -1;
}
int cnt = 0;
if(strstr(demo->data->com_name, name))
{
printf("商品条码:%d", demo->data->barcode);
printf("\n商品名称:%s", demo->data->com_name);
printf("\n商品单价:%d", demo->data->unit);
printf("\n商品厂家:%s", demo->data->manu);
printf("\n商品数量:%d", demo->data->num);
printf("\n商品余量:%d", demo->data->allow);
cnt++;
printf("\n第 %d 件商品信息\n", cnt);
}
可以借鉴一下我打印的这个商品信息,我是用链表存放的,模糊查到了一个相匹配的,就把其信息顺序打印出来,一直循环,直到遍历完所有节点结束(外层的循环条件没有写进来)。