正文

关于两组有序数据组合成一组有序数据的问题2007-03-26 18:35:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzfy/24304.html

分享到:

从小到大排序好的数据连接生成新的数据(也是从小到大),并且要去掉重复数据
这里用字符串作为例子,完成本功能的函数是combineStr
旨在示例一下指针的操控(运用了指向指针的指针)

//字符串连接 *pTag 目标字符串  *pa和*pb要进行连接的字符串
void combineStr(char *pTag ,char *pa,char *pb)
{
    char **pp;pTag--;
    while(*pa||*pb)
    {
        if(!*pb || *pa && *pa<=*pb)pp=&pa;else pp=&pb;
        if(*pTag!=**pp)*++pTag=**pp;(*pp)++;
    }
}

//字符串排序
void sort(char *cpStr)
{
    char *pa,*pb,ct;
    for(pa=cpStr;*pa;pa++)for(pb=pa+1;*pb;pb++)
    if(*pa>*pb)ct=*pa,*pa=*pb,*pb=ct;
}

//主函数main
int main(void)
{
    char a[256]={0},b[256]={0},c[512]={0};
    scanf("%s",a);getchar();sort(a);
    scanf("%s",b);getchar();sort(b);
    combineStr(c,a,b);//接口调用
    printf("\n%s\n",c);
    getch();return 0;
}

阅读(4023) | 评论(9)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册