| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:关于动态分配字符串又一问题 与qsort有关
取消只看楼主 加入收藏
bnb45
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-9-18
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:1 
关于动态分配字符串又一问题 与qsort有关
程序代码:
#include <stdio.h>
#include <string.h>

#define STR_LEN 30
#define MAX_LEN 30

int compares_str(void *p, void *q);

main()
    {
    char *p[MAX_LEN], str[STR_LEN+1];
    int n=0, num_p=0, i, j, k;

    for (;;)
        {
        if (num_p>MAX_LEN)
            {
            printf("-- There is no place left --");
            break;
            }
        printf("Enter the sentence: ");
        scanf(" %s",&str);
        if (strcmp(str,"0")==0)
            break;
        while (getchar()!='\n')
            ;
        p[n]=malloc(strlen(str)+1);
        if (p[n]==NULL)
            {
            printf("-- malloc error --");
            break;
            }
        strcpy(p[n++],str);
        num_p++;
        }

    qsort(p,n,STR_LEN+1,compares_str);

    for (i=0;i<n-1;i++)
        {
        for (j=i+1;j<n;j++)
            {
            if (strcmp(p[i],p[j])==0)
                {
                free(p[j]);
                for (k=j;k<n;k++)
                    p[k]=p[k+1];
                }
            }
        }

    for (i=0;i<n;i++)
        printf("%s\n",p[i]);

    getch();
    return 0;
    }

int compares_str(void *p, void *q)
    {
    return strcmp((char *)p,(char *)q);
    }


   屏幕上显示都是null
不知道又是怎么回事
望解答
搜索更多相关主题的帖子: qsort 动态 字符 
2010-09-20 17:21
bnb45
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-9-18
收藏
得分:0 
来个人。。
2010-09-20 18:12
快速回复:关于动态分配字符串又一问题 与qsort有关
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023536 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved