| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1110 人关注过本帖
标题:简单的字符排序程序,不知到怎样让它结束输入
取消只看楼主 加入收藏
大飞玩编程
Rank: 2
等 级:论坛游民
帖 子:21
专家分:12
注 册:2012-7-24
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:2 
简单的字符排序程序,不知到怎样让它结束输入
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4 #define LEN_MAX 512
5 #define NLINES_MAX 1000
6 char *linePtr[NLINES_MAX];
7 /******* 比较函数,共qsort调用,返回值必须是int类型。自变量 *P1与*P2分别是被排序的两个指针。**/
8 int qcompare (const void *p1,const void *p2)
9 { return strcmp(*(char**)p1,*(char**)p2);
10 }
11
12 /***iiread date from stdin standard date flow function**/
13 char *getline()
14 {
15 char buffer[LEN_MAX],*linePtr =NULL;
16 if(fgets(buffer,LEN_MAX,stdin) != NULL)
17 {
18 size_t len = strlen (buffer);
19 if( buffer[len-1] == '\n')
20 buffer[len-1]= '\0';
21 else
22 ++len;
23 if((linePtr =malloc(len))!=NULL)
24 strcpy(linePtr,buffer);
25 }
26 return linePtr;
27 }
28 int main(void)

29 {int n=0;//读取多少行
30 for( ; n<NLINES_MAX && (linePtr[n] = getline())!=NULL;++n);
31 if(!feof(stdin))//遇到文件结束符
32 {
33 if(n==NLINES_MAX)
34 fputs("sorttext:too many lines.\n",stderr);
35 else
36 fputs("sorttext:error reading from stdin.\n",stderr);}
37 else //sort and putout to screen
38 {
39 qsort( linePtr,n,sizeof(char*),qcompare);
40 for(char **p = linePtr;p<linePtr+n;++p)
41 puts(*p);
42 }
43
44
45 return 0;
46
47 }
搜索更多相关主题的帖子: function include void standard 
2012-07-27 08:18
大飞玩编程
Rank: 2
等 级:论坛游民
帖 子:21
专家分:12
注 册:2012-7-24
收藏
得分:0 
linux下的GCC编译器。 运行之后 输入字符串。不知到怎样样让它结束 输入。 不然的话第三十行是 死循环 或者说 要输入1000行才结束。。。。
2012-07-27 08:19
大飞玩编程
Rank: 2
等 级:论坛游民
帖 子:21
专家分:12
注 册:2012-7-24
收藏
得分:0 
自顶
2012-07-27 08:43
快速回复:简单的字符排序程序,不知到怎样让它结束输入
数据加载中...
 
   



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

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