C语言字符串数组的筛选

有以下字符串数组,分别表示出库单号,代理商号,类型,数量
struct DELIVERY_S
{
char delivery_id[33]; // 出库单号
char kunnr[11]; // 代理商编号
char matrn[19]; // 轮胎编号
int total_count; // 总数量};
typedef DELIVERY_S DELIVERY;
DELIVERY delivery[] =
{
{"CK001","DL001","XH001",10},
{"CK002","DL002","XH002",20},
{"CK001","DL003","XH003",30},
{"CK005","DL005","XH005",50}
};
现在要求,把出库单号取出来,要求不能重复。最后得到的结果是CK001,CK002,CK005
有什么好的办法来实现吗?

新建一个字符数组a[5][6];从delivery[] =
{
{"CK001","DL001","XH001",10},
{"CK002","DL002","XH002",20},
{"CK001","DL003","XH003",30},
{"CK005","DL005","XH005",50}
};
里取值给a[5][6]每次都从头查找如果已有就不插入继续下一个,如果没有就插入到最后:
int k=0,i,j;
for(i=0;i<n;i++)
{
for(j=0;j<k;j++)
{
if(!strcmp(delivery(i),a[j]))
break;
}
if(j>=k)
{
strcpy(a[k],delivery[i]);
k++;
}
}

还有一个方法就是,先把出库单号排序,输出的时候如果,如果前一个跟后一个一样就不输出,否则就输出,这个代码就不用写了吧
温馨提示:答案为网友推荐,仅供参考
相似回答